【问题标题】:Send a request to a route in Symfony2 using Javascript (AJAX)使用 Javascript (AJAX) 向 Symfony2 中的路由发送请求
【发布时间】:2013-12-06 15:39:05
【问题描述】:

我有一个工作原型 Symfony2 RESTful Web 服务,我仍在研究它,我正在尝试弄清楚客户端如何发送 JSON 或使用来自 Web 服务的 JSON 数据。我所需要的只是一个关于如何发送请求或向其发布数据的示例,我可以弄清楚其余的。在我的浏览器中,如果我访问http://localhost/app_dev.php/users.json,我会从我的数据库中得到正确的 JSON 结果,例如 [{"id":1,"username":"paulo","username_canonical":"paulo","email":"a@ymail.com","email_canonical":"a@ymail.com","启用":true,"salt":"66r01","password":"UCxSG2v5uddROA0Tbs3pHp7AZ3VMV","last_login":"2013-12-03T13:55:15-0500","locked":false,"expired":false, "roles":[],"credentials_expired":false,"first_name":"Monique","last_name":"Apple"}, ... 等等

所有其他路由都正常工作,我可以使用 httpie 或 cURL 获得相同的结果。现在,我要解决的问题是使用 AJAX(以及稍后的移动 iOS、Android 等)获取相同的 JSON 数据。这是我使用 AJAX JS 的尝试:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript">


        $.ajax({
            dataType: "json",
            type: "GET",
            url: "http://192.168.1.40/symfony/web/app_dev.php/users.json",
            success: function (responseText)
            {
                alert("Request was successful, data received: " + responseText); 
            },
            error: function (error) {
                alert(JSON.stringify(error));
            }
        });
</script>

AJAX 会警告以下表明错误的结果: {"readyState":0,"responseText":"","status":0,"statusText":"error"}

我做错了什么以及如何解决问题。请举个例子。

【问题讨论】:

    标签: javascript php ajax json symfony


    【解决方案1】:

    这是一个跨域请求问题。您需要向您所在的域发出请求。这是浏览器级别的安全功能。

    例如,如果您当前处于开启状态 http://192.168.1.40,则您只能在 http://192.168.1.40 上请求 URL。这意味着来自http://192.168.1.39(例如)的请求将不起作用

    【讨论】:

    • 不是问这个问题的人,但我绝对没有在浏览器级别实现此安全功能。谢谢!
    • 谢谢!解决了问题。
    猜你喜欢
    • 2011-09-05
    • 2021-12-03
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 2020-10-30
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多