TEL:400-8793-956
当前位置:程序、服务器

JSON,JSONP和Treehouse API

提问者: 近期获赞: 浏览人数: 发布时间:2021-03-14 08:33:11

 问:我建立了一个网站,并使用附加到我的用户名上的Treehouse json文件来为查看我网站的任何人显示数据。前一阵子在工作。我再次检查了一下,什么也没装。它说:“所请求的资源上没有'Access-Control-Allow-Origin'标头。” 它正在使用以下代码:

 
$ 。getJSON (“ http://xxxxx.com/john129er.json” , 函数(treehouse ){ 
//代码在这里});    
 
在寻找答案时,我偶然发现了有关JSONP的信息。在有关JQuery和JSONP的Treehouse视频中,Dave说要添加“?jsoncallback =?” 查询字符串以使网站知道我正在发出JSONP请求,以避开提出跨域AJAX请求。
 
因此,我将此代码添加到了JSON请求中:
 
$ 。getJSON (“ http://xxxxx.com/john129er.json?callback=?” , 函数(treehouse ){ 
//代码在这里});    
 
好吧,我做到了,并且从我的网站上收到了这个错误:“拒绝从' http://xxxxx.com/john129er.json?callback=jQuery1110044577419897541404_1445523771333&_=1445523771334 '执行脚本,因为其MIME类型('application / json')不可执行,并且启用了严格的MIME类型检查。”
 
首先,我不确定为什么它在没有引用JSONP的情况下第一次起作用。其次,我不确定为什么我已经使用JSONP使其无法正常工作。
 
有什么建议?
 
编辑:我意识到为什么它只与JSON请求一起使用。在我的Chrome浏览器上,我有一个扩展程序,该扩展程序允许跨域请求通过。因此,除非在启用了扩展程序的浏览器上,否则它根本无法工作。不知何故,扩展被禁用了(谢天谢地),现在我可以看到其他所有人可以看到的内容。那回答了我的第一个问题。关于如何进行这项工作的任何建议(我的第二个问题)?
 
 
答:您也可以像这样格式化ajax调用,它应该可以工作:
 
    $ .ajax({
         url:url,
         type:'GET',
         dataType:'jsonp',
         data:options,
         success:callback
     })
上一篇: 如何重新启动控制台?
下一篇: 当我按下按钮时,应用程式当机