【发布时间】:2013-07-10 19:04:33
【问题描述】:
这是适用于 Safari 的 AJAX 方法,但不适用于 Chrome。错误信息如下。
$(document).ready(function(){
$('.infobutton').click(function(){
$.ajax({
url: 'http://apps.nlm.nih.gov/medlineplus/services/mpconnect_service.cfm',
data: {
'mainSearchCriteria.v.cs': $(this).attr('data-code-system'),
'mainSearchCriteria.v.c': $(this).attr('data-code')
},
dataType: 'xml',
async: false,
method: 'GET',
success: function(data){
console.log('success');
console.log(data);
},
done: function(data){
console.log('done');
console.log(data);
},
error: function(data){
console.log('error');
console.log(data.error());
}
});
});
});
控制台输出在error 回调中给出statusText,如下所示:"Error: NetworkError: DOM Exception 19"。 This link 谈到了 DOM Exception 19,但这只是说 NETWORK ERROR。没有帮助。
我从其他研究中了解到 Chrome 存在安全、XSS 等问题。
我已经尝试了this SO 帖子以及this one 中的所有建议。没有运气。
使用该查询字符串直接访问 URL 是可行的。可以here查看。
另请注意,这不是应用程序的一部分。 html 实际上只是<button class="infobutton">Click Me</button>。这只是让 AJAX 工作的概念证明。
更新
我还可以确认我在本地(使用file:/// 协议)和远程(在开发服务器上工作)都遇到了同样的错误。
【问题讨论】:
-
该错误是否仅在从您的系统 (file:///...) 本地启动页面时发生,仅在线或两者兼而有之?
-
我只在本地和 JSFiddle 上尝试过,结果相同。
标签: jquery ajax google-chrome