Javascript jQuery No';访问控制允许原点';或解析错误

Javascript 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的数据类

我正在尝试从另一台服务器使用ajax作为Web服务从我的服务器请求数据。它返回由json_encode生成的有效json

 {"reference":"","mobile":"","document":"","appointment":""}
为了避免“访问控制允许源问题”,我将数据类型用作“jsonp”。然而,每当我这样做的时候,我都会收到一个我似乎无法解决的解析错误(即使我也试图从其他人那里复制一些其他有效的json)


有人知道我该如何解决这个问题吗?

好吧,
jsonp
应该是
json
的数据类型,带有
padding
而不仅仅是任何
json
jsonp
是封装在函数中的normal
json
。因此,当您收到
jsonp
时,您可以在闭包中使用该函数并获得所需的输出。 要避免跨浏览器问题,您有三种选择:

  • 如果您可以控制服务器,则输出跨源标题和json
  • 您可以通过像curl这样的后端调用获得json
  • 您可以使用phantomJS(+CasperJS)来刮取页面并获取json

  • 如果你能描述一下你想要实现的目标,我可能会更好。

    使用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的代码?