일부 기존 코드를 정리하려고합니다.
$j.ajax({
type: "POST",
url: "fetchData.php",
success: function(data) {
mapFn._showSidebarHotels(data);
},
cache: false,
data: "51.5&-0.12",
dataType: "json",
processData: false
})
는 레거시 코드는 $를 채 웁니다 : I가 변환하려고
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
} catch (e) {
// Internet Explorer
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
$j.prompt("Your browser does not support AJAX!");
return;
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
// Get the data from the server's response
// returns json data
//i know, don't ask
eval(xmlHttp.responseText);
// doing stuff with the json data
...
etc
}
}
xmlHttp.open("POST","fetchData.php",true);
//sample data passed
var request ="51.5&-0.12";
xmlHttp.send(request);
:
다음 아약스 요청을 수행하는 코드의 주요 부분의 아래 컷 HTTP_RAW_POST_DATA 변경하지 않는 레거시 백엔드 코드가 사용하는 var.
jquery 호출을 사용할 때 $ HTTP_RAW_POST_DATA가 채워지지 않는 것 같고 $ _POST []가 비어있는 것 같습니다.도 마찬가지입니다.
두 개의 ajax 호출을 비교할 때 방화 광 탭의 차이점은 jquery 버전이 기존 호출과 달리 "application/x-www-form-urlencoded"라는 추가 정보가 있다는 점에 주목했습니다.
jquery 아약스 요청과 함께 보낸 헤더 유형에 문제가 있다고 생각하지만 jquery를 사용하여 이러한 문제를 얼마나 더 조종 할 수 있는지 잘 모르겠습니다.
내 질문은 :
내 JQuery와 전화가 올- 인가? 주어진 $ POST 배열이 비어 있습니다.
- jquery의 매개 변수를 사용하여 $ HTTP_RAW_POST_DATA를 어떻게 채울 수 있습니까?
위 예제에서 "processData : false"를 이미 설정했습니다. 더 이상 아이디어가 없습니까? 의 contentType : '텍스트/XML', 유형 : – thiswayup
나는 아약스 요청에 2 개 이상의 키가 'POST'다음으로 , 내가 를 사용하여 PHP의 내용을 읽을 수있는 경우 ('POST'== $ httpMethod) { // $ body = file_get_contents ("php : // input"); $ body = $ HTTP_RAW_POST_DATA; } HTTP_RAW_POST_DATA를 작동 시키려면 php.ini 설정을 사용했습니다. always_populate_raw_post_data = 켜기 – user906825