这是一段不适合我的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 ?
答案 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的浏览器列表。