我有一個函數(searchTerm),它應該從兩個URL中同時獲取數據,並在兩個調用完成後顯示結果。無法從並行ajax調用中檢索數據
這是工作正常,當我在.when
只有一個參數調用(比如$.ajax(options1)
),
但我需要從兩個並行輸出,我在.then
調用這兩個網址,並記錄響應數據1和數據2函數,但現在在ajax調用完成後它不會被調用。
任何人都可以告訴我在這種方法中是否正確嗎?如果是這樣,那麼爲什麼回調沒有得到執行?
var searchTerm = function() {
var $a = $(this);
var term = $("#searchbox").val();
var options1 = {
url: "someurl1",
contentType: "application/json",
data: JSON.stringify({
searchString: term
}),
type: "post",
dataType: "html"
};
var options2 = {
url: "someurl2",
contentType: "application/json",
data: JSON.stringify({
searchString: term
}),
type: "post",
dataType: "html"
};
$.when($.ajax(options1), $.ajax(options2)).then(function(data1, data2) {
alert("callbacks finished");
});
信息1:
似乎任何Ajax調用我指定爲第一個參數與500服務器錯誤而失敗。我嘗試交換options1和options2,現在使用options2的調用失敗。
信息2:
我所提到的選項1和選項2點在同一個控制器中的操作的方法和一部分的URL,他們都返回(的ActionResult)對象的awaitable任務。這可能是這裏的問題嗎?這些調用是通過異步請求以某種方式阻止/中斷對方的?
信息3:
試圖提供更多的細節的工作。的動作方法的定義是這樣的 -
public async Task<ActionResult> someurl1(.....){
...
...
return await View(...);
}
可以嘗試.done而不是.then,看看它是否工作? – Sunand 2014-09-03 20:02:38
我確實嘗試過,但沒有任何影響。 – Sam 2014-09-03 20:04:48
你檢查網絡標籤是否都是返回成功的請求? – Sunand 2014-09-03 20:08:38