跨域ajax请求返回XML:Access-Control-Allow-Origin不允许使用Origin http:// ...

时间:2012-01-28 17:11:43

标签: jquery xml ajax request cross-domain

这是一段不适合我的jQuery:

$.ajax({
  crossDomain: true,
  type: "POST",
  url: "https://www.testdatasolutions.com/reportgw",

  data: "ACCOUNT=creditreport123&PASSWD=asdj97sdf&PASS=2&PROCESS=PCCREDIT&NAME=Robert+Ice&SSN=891-42-3221&ADDRESS=111+W+8th+St&CITY=Fantasy+Island&STATE=IL&ZIP=60750&BUREAU=TU&PRODUCT=CREDIT&DEFAULTOUTPUT=XML"
})

 .done(function( msg ) {
  alert( "Data Saved: " + msg );
});

输出错误说:

  

XMLHttpRequest无法加载https://www.testdatasolutions.com/reportgw。 Access-Control-Allow-Origin不允许原点http://pmr.techforge.us

可以找到类似的主题here,但它仅涵盖输出为JSON的情况。

所以我的问题是,是否可以处理返回XML的跨域ajax请求,或者我必须绝对使用JSONP

2 个答案:

答案 0 :(得分:1)

它必须是JSONP,默认情况下不允许XML用于跨域请求。

但是,通过一些服务器端编程,您可以创建代理并通过curl或类似的方式在您自己的域中的服务器端加载数据,并将其输出为XML。这样您就可以访问自己域中的URL,而不必从客户端执行跨域请求,它将在“幕后”处理。

答案 1 :(得分:0)

您可以尝试使用http://enable-cors.org/。您可以在http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing#Browser_support查看支持CORS的浏览器列表。