【发布时间】:2012-11-20 03:52:35
【问题描述】:
我正在尝试使用 ajax 访问跨域 .js 文件:
$.ajax({
type:'get',
crossDomain:true,
url: "http://localhost/62588/scripts/bootStrapper.js",
contentType: "application/json",
dataType: 'jsonp'
}).done(callback);
我现在有一个回调:
getBootStrapperScript(function (callback) {
//do somethibg
})
我收到以下错误:
XMLHttpRequest cannot load http://localhost/62588/scripts/bootStrapper.js. Origin http://localhost:62607 is not allowed by Access-Control-Allow-Origin.
我一直在阅读有关 JSONP 的信息,但我不确定如何使用它从另一个域加载 .js 文件。
如果我将上面的代码更改为使用 'jsonp' 作为数据类型,但我得到了这个错误:
GET http://localhost/62588/scripts/bootStrapper.js?callback=jQuery18206067646441515535_1354459693160&_=1354459696966 404 (Not Found)
如何加载跨域js文件?
【问题讨论】:
-
看起来你是同源政策的受害者
-
有一个特殊的函数可以为你做这件事,它叫做$.getScript(),它获取外部的javascript文件并插入它。另一种方法是看看谷歌是如何处理分析文件之类的,在头部插入一个脚本标签,然后做类似的事情。使用带有 jsonp 的 Ajax 调用是不是的方法。
-
为什么投反对票?真的很感兴趣,所以我可以在未来提供更好的问题:)
-
谢谢大家 - 请参阅 Darins 回答的评论。
标签: javascript jquery