Javascript jQuery No';访问控制允许原点';或解析错误
我正在尝试从另一台服务器使用ajax作为Web服务从我的服务器请求数据。它返回由json_encode生成的有效jsonJavascript jQuery No';访问控制允许原点';或解析错误,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,我正在尝试从另一台服务器使用ajax作为Web服务从我的服务器请求数据。它返回由json_encode生成的有效json {"reference":"","mobile":"","document":"","appointment":""} 为了避免“访问控制允许源问题”,我将数据类型用作“jsonp”。然而,每当我这样做的时候,我都会收到一个我似乎无法解决的解析错误(即使我也试图从其他人那里复制一些其他有效的json) 有人知道我该如何解决这个问题吗?好吧,jsonp应该是json的数据类
{"reference":"","mobile":"","document":"","appointment":""}
为了避免“访问控制允许源问题”,我将数据类型用作“jsonp”。然而,每当我这样做的时候,我都会收到一个我似乎无法解决的解析错误(即使我也试图从其他人那里复制一些其他有效的json)
有人知道我该如何解决这个问题吗?好吧,
jsonp
应该是json
的数据类型,带有padding
而不仅仅是任何json
。
jsonp
是封装在函数中的normaljson
。因此,当您收到jsonp
时,您可以在闭包中使用该函数并获得所需的输出。
要避免跨浏览器问题,您有三种选择:
如果你能描述一下你想要实现的目标,我可能会更好。使用Json for CORS error/Access Control Allow Origin issue,我将执行以下操作, 在API端,我确保标题设置为allow all。我使用的是SLIM framework(php),但这可以在任何框架中完成
function get_data(){
.....(get the data from db)......
$response->headers->set('Access-Control-Allow-Origin', '*');
$response->headers->set('Cache-Control', 'no-cache');
$response['Content-Type'] = 'application/json';
$response->body(json_encode($result));
}
在jquery端,我像这样调用API
$.ajax({
url: "http://api.example.com/v1/get-data",
success: function(data) {
console.log(data);
},
error: function(){
console.log('error');
},
method:"GET",
async: true,
});
如果由于某种原因上述方法不起作用,并且您必须使用jsonp,那么请执行以下操作:
我正在尝试在wix中创建一个带有HTML iframe标记的小插件。我在自己的服务器上创建了一个php文件,以返回所需的json。我尝试将跨源标题添加到json中,但似乎不起作用。您可以在chrome中的控制台中发布错误以及返回json输出的文件源吗?不是json文件,而是输出json的代码?