У меня есть скрипт Greasemonkey, который отправляет форму через запрос ajax (post) со всеми необходимыми парами имя / значение. Я получаю ответ на запрос, но он не содержит никакого ответа на данные, размещенные на странице. Например, сервер должен ответить некоторыми данными, такими как цена, вес и т. Д., Но все равно, что он не видит пары «имя-значение» в запросе ajax.
Я просматриваю параметры записи ajax в Firebug для вызова Ajax, и они в точности совпадают с параметрами записи обычной отправки страницы. Этот сайт требует, чтобы вы вошли в систему с именем пользователя / pw, но, войдя в систему, я думаю, что он сохраняет состояние с помощью куки. Может ли причина, по которой Ajax-вызов работает, в том, что он не отправляет определенный куки-файл на сервер в Ajax-запросе? Просмотр файлов cookie, отправленных с помощью запроса ajax, аналогичен отправке файлов с обычной страницей. Только один указан как 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){
}
});
Я понимаю, что в обратном вызове успеха ничего нет, я просто смотрю на ответ в firebug.
Изменить: Я пытался это, и он по-прежнему не возвращает "нормальный" ответ
// ==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){
}
});