Cross-Domain AJAX to Read XML

淺唱寂寞╮ 提交于 2019-12-21 04:53:11

问题


Noobie here. I'm writing a client script that needs to read an XML file from another domain. I tried using JSONP. I get a 200 response but the client can't access the returned data for some reason. I get two errors:

Resource interpreted as Script but transferred with MIME type text/xml

and

Uncaught SyntaxError: Unexpected token <

Here's the code (I've removed the XML url since it's confidential):

$(document).ready(function() {
  $.getJSON("urlOfFilecallback=?", function(data) {
  console.log(data)
 })
});

When I try to render the data in the console I get:

ReferenceError: data is not defined

How can I fix this? Do I need to use a proxy?


回答1:


You don't have to write your own proxy. You can use YQL if you want to here is an example how:

//sample site that returns xml
site = 'http://goo.gl/9iQWyG';


var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from xml where url="' + site + '"') + '&format=xml&callback=?';

// Request that YSQL string, and run a callback function.
// Pass a defined function to prevent cache-busting.
$.getJSON(yql, function(data){
    console.log(data.results[0]);
});

here is the jsfiddle check console.log.

(Usage limits of the public YQL API is 2,000 requests/hour per IP)




回答2:


XML is not allowed for cross-domain requests by default.

However, with a little server-side programming you can create a proxy and load the data within your own domain, and output it as XML.

for more information see this Question




回答3:


If you have access to the other domain side, you could also use this approach Cross Domain Request



来源:https://stackoverflow.com/questions/18279603/cross-domain-ajax-to-read-xml

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!