Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 getJson().done()不适用于远程主机_Javascript_Jquery_Json_Html_Getjson - Fatal编程技术网

Javascript getJson().done()不适用于远程主机

Javascript getJson().done()不适用于远程主机,javascript,jquery,json,html,getjson,Javascript,Jquery,Json,Html,Getjson,我正在使用phonegap+html5+JS+CSS开发一个移动应用程序。对于这个应用程序,我需要从remotehost加载一个大的JSON(大小为200-500kb)文件,比如“www.mysite.com/file.JSON” 下面是我试图从localhost运行的index.html文件中的代码 <script type="text/javascript"> var myAPI = "http://www.mysite.com/file.json?callback=?

我正在使用phonegap+html5+JS+CSS开发一个移动应用程序。对于这个应用程序,我需要从remotehost加载一个大的JSON(大小为200-500kb)文件,比如“www.mysite.com/file.JSON”

下面是我试图从localhost运行的index.html文件中的代码

<script type="text/javascript">

    var myAPI = "http://www.mysite.com/file.json?callback=?"; //for this one .done() does not execute
      // var myAPI = "file.json"  //but for this one .done() executes
    var json = $.getJSON( myAPI, {
        format: "json"
        }).done(function( data ) {    
            /*for remote link nothing inside this done() executes but works for local link*/
            $.each( data, function( i, item ) {
            $("#someDiv").append("<div>"+item.id+" "+item.name+"</div>")
            })
        });

</script> 

var myAPI=”http://www.mysite.com/file.json?callback=?"; //对于这一个,done()不执行
//var myAPI=“file.json”//但对于这一个,将执行.done()
var json=$.getJSON(myAPI{
格式:“json”
}).done(函数(数据){
/*对于远程链接,此done()中的任何内容都不会执行,但对本地链接有效*/
$。每个(数据、功能(i、项){
$(“#someDiv”).append(“+item.id+”“+item.name+”)
})
});
我使用jquery getJson()和done()在加载完成后显示加载的json数据。但是,当我将file.json文件放在本地目录中时,惟一执行time done()的时间。使用远程链接时,不执行done()。我使用chrome开发工具断点检查了它。没有访问控制允许源错误,file.json已正确加载,我可以从devtool的网络(file.json加载时间)和源(file.json显示在www.mysite.com文件夹)选项卡中保证这一点


任何关于如何使用jquery从远程主机加载json文件的建议。提前感谢。

服务器是否正在处理您的.json文件并将其转换为jsonp?如果不是,那么您的服务将不会返回有效的jsonp。JSON!=jsonpdo在没有回调参数的情况下工作(即
myAPI=”http://www.mysite.com/file.json“
)?@bclune否如果没有回调,它将无法工作。然后会导致访问控制允许源错误。@KevinB.json文件是服务器中的静态文件。我没有做任何事情将其转换为jsonp。很抱歉,我可能不理解您的问题(*noob alert)。那么,除非您修改json文件以包含正确的jsonp,否则此请求将无法工作,例如,
jsonpCallback(thejsonhere)
您只需创建一个全局函数
window.jsonpCallback=function(json){console.log(json);}$。getScript(“http://www.mysite.com/file.json“”