[英]Cross Domain JSONP XML Response
我正在使用 JSONP 發出 api 跨域請求,外部服務器以 XML 格式返回我的結果,以下是我的代碼:
$.ajax({
type: "Get",
url: "http://domain.com/function?Data=1234567890",
xhrFields: {withCredentials: true},
dataType: "JSONP text xml",
contentType: "application/xml",
cache: false,
success: function(xml)
{
alert($(this).find('ResponseStatus').text());
}
});
它返回給我一個 xml,但同時它會生成一個錯誤,指出“意外的令牌 <”,不幸的是它停止了我的處理並且我沒有收到警報消息。 任何的想法?
最好的事物
正如上面的評論中提到的,來自 javascript 的跨域 xml 是一個禁忌,除非您可以控制吐出 XML 的應用程序,並且可以使用格式化技巧來“欺騙”腳本將其解析為 JSON。 但是,如果您可以這樣做,那么問題將是為什么不首先將格式設置為 JSON? 所以...選項
像這樣的東西:
// find some demo xml - DuckDuckGo is great for this
var xmlSource = "http://api.duckduckgo.com/?q=StackOverflow&format=xml"
// build the yql query. Could be just a string - I think join makes easier reading
var yqlURL = [
"http://query.yahooapis.com/v1/public/yql",
"?q=" + encodeURIComponent("select * from xml where url='" + xmlSource + "'"),
"&format=xml&callback=?"
].join("");
// Now do the AJAX heavy lifting
$.getJSON(yqlURL, function(data){
xmlContent = $(data.results[0]);
var Abstract = $(xmlContent).find("Abstract").text();
console.log(Abstract);
});
當然,在該示例中,您將帶回所有 xml 數據並在本地搜索它 - 選項是調整 select 語句以帶回您想要的。
希望有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.