我有以下代码试图评估从HTTPS URL返回的一些Javascript。我在本地运行代码,在localhost:8080但是ajax请求没有返回脚本,它将以未定义的形式返回。
$.ajax({
crossDomain: true,
dataType: 'script',
url: 'https://mysite.io/live?action=isAvailable',
success: init,
error: function (jqXHR, textStatus, msg) {
failure();
},
timeout: 2000,
cache: false
});
function init(data) {
var isAvailable = undefined;
eval(data);
if (isAvailable) {
chatAvailable();
} else {
chatUnavailable();
}
}
这是我在Chrome中访问网址时的回复: [https://mysite.io/live?action=isAvailable]:
回复标题: HTTP / 1.1 200好的 内容语言:en-US content-type:text / javascript; charset = UTF-8 日期:2013年11月19日星期二05:59:25 GMT p3p:CP =“NON CUR OTPi OUR NOR UNI” x-old-content-length:23 transfer-encoding:chunked
回应机构: var isAvailable = true;
当我在[http:// localhost:8080]的本地计算机上运行此代码时,为什么这不起作用的任何想法?
答案 0 :(得分:0)
您需要在服务器上启用CORS。 Here是启用CORS的良好资源。
答案 1 :(得分:0)
尝试这样的事情
$.ajax({
dataType: 'jsonp',
url: 'https://mysite.io/live?action=isAvailable?callback=?',
success: init,
error: function (jqXHR, textStatus, msg) {
failure();
},
timeout: 2000,
cache: false
});