필요한 모든 이름/값 쌍을 포함하는 ajax 요청 (게시물)을 통해 양식을 제출하는 Greasemonkey 스크립트가 있습니다. 요청에 대한 응답을 얻을 수는 있지만 페이지에 게시 된 데이터에 대한 응답은 포함되어 있지 않습니다. 예를 들어, 서버는 가격, 무게 등과 같은 일부 데이터로 응답해야합니다.하지만 마치 아약스 요청에서 이름 값 쌍을 보지 못한 것입니다.jQuery ajax 게시 문제 asp 페이지에 데이터를 제출하지 않았습니다.
나는 Ajax 호출을 위해 Firebug에서 ajax 게시 매개 변수를보고 있는데 이는 정상적인 페이지 제출의 게시 매개 변수와 완전히 동일하다. 이 사이트는 사용자 이름/pw로 로그인해야하지만 일단 로그인하면 쿠키로 상태를 유지합니다. Ajax 호출이 작동하는 이유는 Ajax 요청에서 서버에 특정 쿠키를 보내지 않기 때문일 수 있습니까? 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){
}
});
성공 콜백에는 아무 것도 없다는 것을 알았습니다. 방화범 소리가 나는 반응을보고 있습니다.
편집 : 나는이 시도하고 여전히 "정상"응답을 반환하지 않는이 같은
데이터 키에 있어야합니다// ==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에서 볼 수 있듯이 아약스 호출과 동일한 URL입니다. – user357034
페이지가 서버에 두 개 이상의 게시물을 보낼 수 있습니까? 즉, * state * 검사를 사용합니까? ... 또한, 우리는 정말로 그 질문으로부터 더 많은 것을 말할 수 없습니다. 양식 HTML 및 관련 JS를 게시하십시오. –