我知道我一定遗漏了一些显而易见的东西,但我似乎不明白为什么我的代码/方法不能工作。当我尝试在AJAX调用成功时调用一个匿名函数(我只是想获取一个XML文件),它不会触发。但是,如果我把成功变成仅仅是一种警觉(“成功!”)这个很好用。有人能解释一下为什么会发生这种事吗?
$("#target").click(function() {
alert( "Handler for .click() called." );
var part = document.getElementById('partname').value;
var url = "http://parts.igem.org/xml/part." + part;
alert(url);
$.ajax({
type: 'GET',
url: url,
dataType: 'xml',
success: function(response) {
console.log('response = '+response);
}
});
});再次,使用:成功:警告(成功);
代替匿名函数,效果很好。这里完全迷惑不解。谢谢!
发布于 2013-11-09 04:11:42
由于same origin policy...,所以AJAX调用必须来自同一个域或站点。
相同的来源策略阻止从一个来源加载的文档或脚本从另一个来源获取或设置文档的属性。此策略可追溯到Netscape Navigator 2.0。
从另一个站点获取XML的常见方法之一是使用PHP和CURL。不过,您只列出了客户端语言。我会研究其他获取数据的方法.
发布于 2014-03-21 19:28:37
您可以尝试实现CORS,但这需要您访问另一个域。您需要在请求的“访问控制-允许-原产地:*”或“访问控制-允许-原产地:http://www.domainThatMakesTheRequest.com”的请求域中设置响应头。
https://stackoverflow.com/questions/19872169
复制相似问题