我知道我必须遗漏一些明显的东西,但我似乎无法理解为什么我的代码/方法不起作用。当我尝试在我的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);
}
});
});
再次,使用: 成功:警报('成功');
代替匿名功能正常工作。在这里完全不解。谢谢!
答案 0 :(得分:2)
相同的原始策略会阻止从一个文档或脚本加载的文档或脚本 来自获取或设置文档属性的来源 起源。此政策可以追溯到Netscape Navigator 2.0。
从其他站点获取XML的常用方法之一是使用PHP和CURL。但是,您只列出了客户端语言。我会研究获取这些数据的其他方法......
答案 1 :(得分:0)
您可以尝试实施CORS,但这需要您访问其他域。您需要在请求的域“ACCESS-CONTROL-ALLOW-ORIGIN:*”或“ACCESS-CONTROL-ALLOW-ORIGIN:http://www.domainThatMakesTheRequest.com”中设置响应头