AJAX 요청과 직접 브라우저 요청 (웹 페이지가 호출되고로드되는 측면에서)간에 차이가 있습니까?AJAX 요청과 일반 브라우저 요청의 차이점
다른 말로하면 브라우저 쪽에서 요청한 클라이언트 쪽 요청과 다른 방식으로 처리되는 직접적인 서버 쪽 요청입니까?
AJAX 요청과 직접 브라우저 요청 (웹 페이지가 호출되고로드되는 측면에서)간에 차이가 있습니까?AJAX 요청과 일반 브라우저 요청의 차이점
다른 말로하면 브라우저 쪽에서 요청한 클라이언트 쪽 요청과 다른 방식으로 처리되는 직접적인 서버 쪽 요청입니까?
Ajax 요청이 늘어나는만큼 "정상적인"브라우저 요청에 동일입니다 서버는 잠재적으로 약간 다른 HTTP 헤더 이외에 관련되어 있습니다. 예 : 크롬 보냅니다
X-Requested-With:XMLHttpRequest
내가 그 헤더가 표준화되지 않거나 있는지 확실하지 않습니다, 또는 모든 브라우저에서 또는 다른 있다면 모든 브라우저에서 모든에서 포함되어 있습니다.
편집 : 전송
var xhr = new XMLHttpRequest();
xhr.open('GET', '/');
xhr.send();
:에 의해 입증 된 바와 같이 나는, 그 헤더, jQuery를 (그리고 가능성이 다른 JS 라이브러리)에 의해하지 브라우저를 보내 그 뒷면을
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie: ....
Host:stackoverflow.com
If-Modified-Since:Sat, 31 Dec 2011 01:57:24 GMT
Referer:http://stackoverflow.com/questions/8685750/how-does-an-ajax-request-differ-from-a-normal-browser-request/8685758
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.12 Safari/535.11
결론에 따라 기본적으로에는 차이가 없습니다.
사용자 에이전트, 일명 브라우저는이 같은 PHP에서 잡을 수있는 XHR 헤더를 보냅니다
$_SERVER['HTTP_X_REQUESTED_WITH']
아니요. 대부분의 Ajax 클라이언트는 X-Requested-With=XMLHttpRequest
HTTP 헤더를 보낸다.
헤더 차이가있을 수 있지만 클라이언트의 주요 동작 차이는 클라이언트에있다.
브라우저가 window.location.href = "index.html"
과 같이 정기적 인 요청을하면 현재 창을 지우고 창에 서버 응답을로드합니다.
ajax 요청을 사용하면 현재 창/문서는 영향을받지 않으며 자바 스크립트 코드는 요청 결과를 검사하여 결과에 원하는대로 수행 할 수 있습니다 (HTML을 페이지에 동적으로 삽입하고 JSON을 파싱하고 페이지를 사용합니다). 논리, 구문 분석 XML 등 ...).
서버가 다른 작업을 수행하지 않습니다. 클라이언트가 두 요청의 응답을 처리하는 방법입니다.
비록 내가 너희들을 믿을지라도, weblogic에는 전혀 이상한 것이있다. AJAX 호출을하는 ExtJS 프레임 워크를 사용하는 응용 프로그램을 작성 중이다. j_security_check의 일을하는 동안 그것에게 AJAX 방식을 할 때
, 난 항상 오류를 얻을 : 웹 로직는 말한다 :
unauthorized: var submitButton = new Ext.Button({
text: 'Logon',
formBind: true, //only enabled once the form is valid
disabled: true,
handler: function() {
Ext.Ajax.request({
url: "j_security_check",
params: {
j_username: dlg.getForm().findField('j_username').getValue(),
j_password: dlg.getForm().findField('j_password').getValue()
},
method: "GET"
});
}
});
이 실패합니다.
window.location.href = "j_security_check?j_username=" + dlg.getForm().findField('j_username').getValue() + "&j_password=" + dlg.getForm().findField('j_password').getValue();
의미가 있습니다 :
나는이 발행 할 때! 기묘한.