[英]Synchronous cross sub-domain POST request with jQuery
我正在嘗試執行跨域POST請求並且已經打了一個牆(或兩個)。
我無法在服務器上放置代理頁面 - 因此這不是一個選項。
我研究了getJSON,除了我需要POST不GET之外,它工作得很好。
是否有可能做到這一點? 如果不是 ,有人可以向我解釋getJSON如何工作以及為什么我不能做出替代方案。
您不能使用XMLHttpRequest(aka AJAX)發出跨域請求(GET / POST /等)。
當服務器支持它時,您可以做的是發出JSONP請求。 JSONP請求的工作方式如下:
如果您無法控制要發布的服務器,那么您運氣不佳,JSONP對您不會有太大幫助。 無論服務器返回什么都將在SCRIPT標記中,並且如果格式不正確,很可能會拋出錯誤。
有關這方面的更多信息,我建議您查看基本的$ .ajax函數而不是快捷方式。 (在Ajax下的jQuery文檔中。抱歉,我無法發布更多鏈接)
同樣,如果您無法控制要發布的服務器,則可能需要查看代理。 否則,IFRAME可能是您唯一的其他選擇。 還有一種方法可以使用SWF(flash)對象來實現此目的。 我既沒有嘗試過,但它們是XMLHttpRequest對象限制的解決方法。
希望我能幫忙!
你可以做一個帖子,但你想要的是一個JSONP請求來解決跨域問題。 本質上,您提供了一個回調函數,請求以腳本內容的形式返回,並使用請求中的JSON數據調用您的回調。 您的服務器端腳本需要使用圍繞JSON對象的回調函數將數據作為函數調用提供。
請參閱post功能的文檔。
$.post( '/example.com/controller/action?callback=?',
{ param: "data" },
function(data) {
...do something with the data...
}, 'jsonp' );
ASP.NET MVC對此的操作:
[AcceptVerbs( HttpVerbs.Post )]
public ActionResult Action( string param, string callback )
{
var jsonData = ...do something and construct some data in JSON...
return Content( callback + "(" + jsonData + ");" );
}
如果你想要做的跨域POST那么最簡單的解決方案是提供一個在這里利瑪竇。 它對我很有用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.