Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 在.js文件上使用Ajax获取JSONP_Javascript_Jquery_Ajax_Json_Jsonp - Fatal编程技术网

Javascript 在.js文件上使用Ajax获取JSONP

Javascript 在.js文件上使用Ajax获取JSONP,javascript,jquery,ajax,json,jsonp,Javascript,Jquery,Ajax,Json,Jsonp,我试图用跨域的方式从一个json文件中保存数据。所以我使用jsonp,但文件的扩展名是.js,所以当我尝试使用数据类型为“jsonp”的$.ajax时,控制台中出现了一个错误: 未捕获的语法错误:意外标记 当请求失败时,该文件被解释为javascript文件。你有没有办法在没有这个错误的情况下获取数据 $.ajax({ url : 'http://domaine.com/file.js', contentType: "application/json; charset=utf-8

我试图用跨域的方式从一个json文件中保存数据。所以我使用jsonp,但文件的扩展名是.js,所以当我尝试使用数据类型为“jsonp”的$.ajax时,控制台中出现了一个错误: 未捕获的语法错误:意外标记 当请求失败时,该文件被解释为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文件一样考虑周全


感谢您的帮助。

将您的json转换为正确的jsonp

jsonpcallback({"this":"is","my":"json"})
然后使用给定的回调请求它:

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

我无法访问file.js,如果file.js包含一个简单的对象
{“foo”:“bar”}
你不能对它做任何事情,因为如果没有函数包装器,它将抛出语法错误。在这一点上,您唯一的选择是使用服务器端代码或其他代理(如YQLYeah)请求它。我想这是唯一的解决方案,但我不确定。。我尝试使用YQl。谢谢
$.ajax({
    url: "http://domain.com/file.js",
    dataType: "jsonp",
    jsonpCallback: "jsonpcallback",
    success: handler,
    complete: handler,
    error: handler
});