我对如何通过http://www.nlm.nih.gov/medlineplus/webservices.html查询Rest Web服务感到有些不知所措 这是我目前所拥有的一个小提琴:http://jsfiddle.net/mjtaljaard/jnjk4/ 但它没有返回任何东西。有人提到我有一个跨站点脚本问题?有什么建议吗?
function DoSearch() {
var searchVal = $('#searchString').val();
alert('called ' + searchVal);
var url = "http://wsearch.nlm.nih.gov/ws/query?db=healthTopics&term="+searchVal;
$.get(url, function( data ) {
$( "#resultsDiv" ).html( data );
alert( "Load was performed." );
});
}
答案 0 :(得分:2)
浏览器客户端代码无法直接从其他网站直接请求数据。这被称为same-origin policy。这有助于保护用户免受cross-site scripting attacks。
的攻击查看the description of that web service,没有提及CORS(cross-origin resource sharing)或JSONP,这两种方法都是放宽同一起源政策的常用方法。
您最好的解决方案可能是调用您自己的服务器端代码(如果它具有与网页相同的协议和主机,则可以),并让您的服务器端代码获取数据。然后,您可以将整个有效负载从GET返回到调用网页,或者修改响应并仅返回所需的数据。
答案 1 :(得分:0)
我的项目是在Phonegap中,跨站点脚本编写对于phonegap来说不是问题。所以一旦我把它装在我的设备上,一切都运转良好。