2010-08-24 289 views
1

當試圖向ASP.NET asmx Web服務發送POST請求時,我看到(在Charles和Firebug中)它以GET的形式發送。AS3 POST請求作爲GET發送

這裏是我的AS3

public function save(page:SharedPageVO, callback :Function = null): void { 
    var req:URLRequest = new URLRequest("service.asmx/CreateSharedPage"); 
    req.data = page; 
    req.method = URLRequestMethod.POST; 
    if (callback != null) 
    { 
    //handle removing the event here instead of there 
    this.complete = callback; 
    DataService.instance.addEventListener(Event.COMPLETE, onComplete); 
    } 
    DataService.instance.load(req); 
} 

public var complete:Function; 
private function onComplete(e:Event) 
{ 
if (complete != null) complete(e); 
complete = null; 
DataService.instance.removeEventListener(onComplete); 
} 

這似乎與閃光燈,因爲它正在發生的事情甚至去到服務器之前的一個問題。我已經將這個上傳到測試服務器,我仍然看到它通過GET。任何幫助,將不勝感激。謝謝。

+5

你的表格定義了一個body,對吧?從[URLRequest](http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/net/URLRequest.html#method)文檔:「注意:如果在Flash Player中運行並且引用的表單沒有正文,即使該方法設置爲URLRequestMethod.POST,Flash Player也會自動使用GET操作。「 – Stephen 2010-08-24 14:08:42

+0

謝謝Stephen,就是這樣。 – Skawful 2010-08-24 15:21:38

回答

1

從ActionScript LR(URLRequest類,方法,屬性):

注:如果在Flash Player和引用的形式運行沒有正文,Flash播放器會自動使用GET操作,即使該方法被設置爲URLRequestMethod .POST。出於這個原因,建議始終包含一個「虛擬」主體以確保使用正確的方法。

您是否在使用「虛擬」身體?