0

我尝试使用跨域保存 à json 文件中的数据。所以我使用 jsonp 但文件的扩展名为 .js,所以当我尝试使用 $.ajax 和 dataType 时:'jsonp' 我在控制台中有一个错误:Uncaught SyntaxError: Unexpected token 该文件被解释为 javascript 文件,请求失败. 您是否有在没有此错误的情况下获取数据的想法。

$.ajax({
    url : 'http://domaine.com/file.js',
    contentType: "application/json; charset=utf-8",
    dataType : 'jsonp',
    success : function(data){
        console.log(data);
        // no enter in this callback
    },
    complete: function(data1, data2, data3){
        // no data from file.js
    }
});

当我检查正在加载的脚本中的页面时,我发现了 file.js,我可以看到所有信息,但是由于它被视为 javascript 文件而出现错误。

谢谢你的帮助。

4

1 回答 1

0

将您的 json 转换为正确的 jsonp

jsonpcallback({"this":"is","my":"json"})

然后使用给定的回调请求它:

<script>
    function jsonpcallback(data) {
        console.log(data);
    }
</script>
<script src="http://domain.com/file.js"></script>

你当然也可以用 jQuery 来做:

$.ajax({
    url: "http://domain.com/file.js",
    dataType: "jsonp",
    jsonpCallback: "jsonpcallback",
    success: handler,
    complete: handler,
    error: handler
});
于 2012-08-23T14:39:16.987 回答