Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery跨域获取请求不工作_Javascript_Jquery_Json_Jsonp - Fatal编程技术网

Javascript JQuery跨域获取请求不工作

Javascript JQuery跨域获取请求不工作,javascript,jquery,json,jsonp,Javascript,Jquery,Json,Jsonp,我正在尝试设置一个简单的接口来测试Basecamp API。我已经设置了dataType=jsonp以避免跨域问题。在进行调用时,我可以在inspector中看到响应正在返回正确格式的JSON。然而,我的错误警报显示4和200,但响应文本为“未定义”。我假设我没有正确地从jsonp转换为json,但是我需要得到我想要的响应吗?或者我没有正确访问响应 代码: 您的URL用于.json文件,但JSONP需要一个经过特殊格式化的JavaScript文件,以便将结果传递到您控制的函数中(或者,由于您正在

我正在尝试设置一个简单的接口来测试Basecamp API。我已经设置了dataType=jsonp以避免跨域问题。在进行调用时,我可以在inspector中看到响应正在返回正确格式的JSON。然而,我的错误警报显示4和200,但响应文本为“未定义”。我假设我没有正确地从jsonp转换为json,但是我需要得到我想要的响应吗?或者我没有正确访问响应

代码:


您的URL用于
.json
文件,但JSONP需要一个经过特殊格式化的JavaScript文件,以便将结果传递到您控制的函数中(或者,由于您正在使用jQuery,因此由jQuery管理)。无论哪种方式,服务器都需要支持JSONP,您不能只请求JSON文件并将其强制为JSONP交互。

服务器端需要使用函数调用包装jason数据。函数名在url中作为“?回调=?”传递

因此,您需要返回json对象,而不仅仅是从服务器返回json对象
{…}

SomeFunctionName({...});

除了作为url参数外,您不能发送带有jsonp请求的用户名/密码。API仅返回json。我将它设置为jsonp,因为这是我执行它的唯一方法。我收到一个包含数据的json响应。@porterhaus那么,除非您修改服务器端响应以支持CORS或JSONP,否则仅使用客户端代码无法请求所述数据。目前它似乎都不支持。谢谢。我在研究了其他几个领域后得出了同样的结论。他们最终计划支持它。这是服务器端响应的函数还是我可以请求它作为我的请求?jQuery使用url中的回调参数在请求中传递函数名。SomeFunctionName应该是回调参数中的名称,并且是服务器端响应的一部分。
SomeFunctionName({...});