这是适用于 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());
}
});
});
});
控制台输出statusText
在error
回调中给出如下:"Error: NetworkError: DOM Exception 19"
。此链接讨论 DOM Exception 19,但只是说NETWORK ERROR
. 没有帮助。
我从其他研究中了解到 Chrome 存在安全、XSS 等问题。
我已经尝试了这个SO 帖子中的每一个建议,以及这个。没运气。
使用该查询字符串直接访问 URL 是可行的。你可以在这里查看。
另请注意,这不是应用程序的一部分。html 从字面上看就是<button class="infobutton">Click Me</button>
. 这只是让 AJAX 工作的概念证明。
更新
我还可以确认我在本地(使用file:///
协议)和远程在开发服务器上工作时都遇到了同样的错误。