我有一個Greasemonkey腳本通過ajax請求(後)與所有必需的名稱/值對提交表單。我收到了對請求的響應,但它不包含對發佈到頁面的數據的任何響應。例如,服務器應該回應一些數據,如價格,重量等。但它就好像它沒有在ajax請求中看到名稱值對。麻煩jQuery ajax後沒有提交數據到ASP頁
我正在尋找Firebug中用於Ajax調用的ajax post參數,它們與正常頁面提交中的post參數完全相同。本網站要求您使用用戶名/密碼登錄,但一旦登錄,我想它會保持Cookie狀態。 Ajax調用能夠工作的原因是因爲它沒有向Ajax請求中的服務器發送特定的cookie?查看與ajax請求發送的cookie與通常頁面提交發送的cookie相同。只有一個被列爲HttpOnly。不知道這是否有所作爲。
我從來沒有在過去遇到過這個問題,並且很難理解爲什麼我無法得到這個工作。
// ==UserScript==
// @name test
// @description test
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// @include *http://extranet.alliancels.net/ordering/ebusiness/Pricing.aspx*
// ==/UserScript==
jQuery.ajax({
url: 'http://extranet.alliancels.net/ordering/ebusiness/Pricing.aspx',
data: '__EVENTTARGET=&__EVENTARGUMENT=&__SCROLLPOSITIONX=0&__SCROLLPOSITIONY=0&__VIEWSTATE='+encodeURIComponent(jQuery('#__VIEWSTATE').val())+'&ctl00$ContentPlaceHolder1$txtQuantity=1&ctl00_ContentPlaceHolder1_txtPartNumber=70367301P&ctl00_ContentPlaceHolder1_btnSubmit=Submit',
type: 'POST',
async: false,
cache: false,
success: function(data){
}
});
我意識到成功回調中沒有什麼,我只是看着螢火蟲的迴應。
編輯:我想這和它仍然沒有恢復「正常」的反應
// ==UserScript==
// @name test
// @description test
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// @include *http://extranet.alliancels.net/ordering/ebusiness/Pricing.aspx*
// ==/UserScript==
jQuery('#ctl00_ContentPlaceHolder1_txtPartNumber').val('70367301P');
var form_data = $('#aspnetForm').serialize();
jQuery.ajax({
url: 'http://extranet.alliancels.net/ordering/ebusiness/Pricing.aspx',
data: form_data,
type: 'POST',
async: false,
cache: false,
processData: false,
success: function(data){
}
});
這個請求是由它發起的同一個域創建的嗎? – Jasper
是的,正如你在@include中看到的那樣,它是與ajax調用相同的URL。 – user357034
該頁面是否可能向服務器發送多個帖子?也就是說,它使用*狀態*檢查? ...另外,我們實在無法從這個問題中分辨出更多。發佈表單HTML和任何相關的JS。 –