繁体   English   中英

HTTP 200上的跨域AJAX请求错误

[英]Cross-domain AJAX request error on HTTP 200

我正在编写一个非常基本的Facebook应用程序,但是遇到了跨域AJAX请求(使用jQuery)的问题。

我编写了一个代理页面,以通过我通过AJAX调用的cURL向图形发出请求。 我可以在浏览器中访问该页面,并看到它具有正确的输出,但是通过始终请求页面会导致jQuery触发错误处理程序回调。

所以我有两个文件:

代理,执行cURL请求

<?php
//Do some cURL requests, manipulate some data
//return it as JSON
print json_encode($data);
?>

facebook画布,其中包含此AJAX调用

$.getJSON("http://myDomain.com/proxy.php?get=stuff", 
          function(JSON)
          {
              alert("success");
          })
          .error(function(err)
          {
              alert("err");
          });

使用Firebug检查该调用会显示其返回的HTTP代码为200 OK ,但始终会触发错误处理程序,并且不会返回任何内容。 无论我是否设置Content-Type: application/json发生这种情况

在使用AJAX之前,我已经用PHP编写了返回JSON的API,并且从未遇到过这种麻烦。

是什么导致请求始终触发错误处理程序?

最近,我遇到了同样的问题,我的问题是由于SSL,网页和API之间存在域差异。

网页上有一个HTTP地址(http://myDomain.com),而我向JQuery请求的内容位于同一域,但是HTTPS协议(https://myDomain.com)。 浏览器(在本例中为Chrome)认为域是不同的(第一个域使用HTTP ,第二个域使用HTTPS ),只是由于协议的缘故,并且因为请求响应类型为“ application / json”,所以浏览器做了不允许。

基本上,该请求可以正常工作,但您的浏览器不允许响应内容。

我必须添加一个“ Access-Control-Allow-Origin ”标题才能使其工作。 如果您是同一情况,请在此处查看: https : //developer.mozilla.org/en/http_access_control

希望对您有帮助,我自己很头疼。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM