jQuery의 getJSON() 메서드로 요청 헤더를 전달하려면 어떻게 해야 합니까?
나는 해야합니다.getJSON()
요청합니다만, 승인 및 사용자 지정 헤더를 통과하려면 어떻게 해야 합니까?
요청 헤더가 값이 아닌 이름을 가져간다는 문제가 발생합니다.Fiddler에서 GET/Url 대신 옵션으로 삽입하도록 수동 요청을 통해 URL을 표시하고 있습니다.
다음은 Fidder에서 잘 작동하는 작업의 예입니다. AJAX 함수를 사용하여 이를 복제하려면 어떻게 해야 이 작업을 수행할 수 있습니까?
GET /Service.svc/logins/gdd53535342/houses/vxcbdfsdg/people/dsgsdggd?format=json HTTP/1.1
User-Agent: Fiddler
Authorization: Basic rgbg423535fa23y4436
X-PartnerKey: df3fgeg-g5g6-b55b-f3d2-dsgg353523
Host: 154.34.53.54:2757
자바스크립트 코드:
xhr = new XMLHttpRequest();
$(document).ready(function() {
$.ajax({
url: 'http://localhost:437/service.svc/logins/jeffrey/house/fas6347/devices?format=json',
type: 'GET',
datatype: 'json',
success: function() { alert("Success"); },
error: function() { alert('Failed!'); },
beforeSend: setHeader
});
});
function setHeader(xhr) {
xhr.setRequestHeader('Authorization', 'Basic faskd52352rwfsdfs');
xhr.setRequestHeader('X-PartnerKey', '3252352-sdgds-sdgd-dsgs-sgs332fs3f');
}
Fiddler 일반 요청 헤더:
GET /service.svc/logins/jeffrey/house/fas6347/devices?format=json HTTP/1.1
User-Agent: Fiddler
Authorization: Basic faskd52352rwfsdfs
X-PartnerKey: 3252352-sdgds-sdgd-dsgs-sgs332fs3f
Host: localhost:437
피들러 스루Ajax()
머리글 요청:
OPTIONS service.svc/logins/jeffrey/house/fas6347/devices?format=json HTTP/1.1
Host: localhost:437
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Proxy-Connection: keep-alive
Origin: http://ipv4.fiddler:61975
Access-Control-Request-Method: GET
Access-Control-Request-Headers: authorization,x-partnerkey
요청 헤더를 전달하려면 $.ajax 함수를 사용해야 한다는 sunetos의 의견에 동의합니다.그러려면 $.ajax() 옵션 중 하나인 보내기 이벤트 핸들러에 대한 함수를 작성해야 합니다.다음은 이를 수행하는 방법에 대한 간단한 샘플입니다.
<html>
<head>
<script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
url: 'service.svc/Request',
type: 'GET',
dataType: 'json',
success: function() { alert('hello!'); },
error: function() { alert('boo!'); },
beforeSend: setHeader
});
});
function setHeader(xhr) {
xhr.setRequestHeader('securityCode', 'Foo');
xhr.setRequestHeader('passkey', 'Bar');
}
</script>
</head>
<body>
<h1>Some Text</h1>
</body>
</html>
위의 코드를 실행하고 Fiddler와 같은 도구로 트래픽을 관찰하면 두 개의 요청 헤더가 전달됩니다.
- foo 값을 가진 securityCode
- Bar 값의 암호키
setHeader 기능도 $.ajax 옵션에 포함될 수 있지만, 저는 그것을 불러내고 싶었습니다.
도움이 되길 바랍니다!
헤더를 설정하고 getJSON()을 다음과 같이 사용할 수 있다고 생각합니다.
$.ajaxSetup({
headers : {
'Authorization' : 'Basic faskd52352rwfsdfs',
'X-PartnerKey' : '3252352-sdgds-sdgd-dsgs-sgs332fs3f'
}
});
$.getJSON('http://localhost:437/service.svc/logins/jeffrey/house/fas6347/devices?format=json', function(json) { alert("Success"); });
그$.getJSON()
method는 그런 고급 옵션을 지정할 수 없는 속어입니다.그러기 위해서는 전체를 사용해야 합니다.$.ajax()
방법.
http://api.jquery.com/jQuery.getJSON/ 의 문서에 나와 있는 공지사항:
이것은 Ajax의 축약 함수로, 다음과 같습니다.
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
});
그래서 그냥 써요.$.ajax()
필요한 모든 추가 파라미터를 제공합니다.
언급URL : https://stackoverflow.com/questions/3229823/how-can-i-pass-request-headers-with-jquerys-getjson-method
'prosource' 카테고리의 다른 글
PySpark에서 dataframe 컬럼의 이름을 얻는 방법은? (0) | 2023.10.25 |
---|---|
Word press - remove_filter를 한 페이지에만 적용 (0) | 2023.10.25 |
하위 폴더의 다른 워드프레스 설치 (0) | 2023.10.20 |
wooCommerce - 기능에서 새 주문/고객 송장 이메일 보내기php 파일 (0) | 2023.10.20 |
MariaDB 10.2 json insert가 PHP에서 유효하지 않음 (0) | 2023.10.20 |