내 REST 서버에서 모든 요청에 access_token이 있어야합니다. 즉, 게시 데이터에서 access_token을 속성과 함께 제출해야합니다.backbone.js에 access_token 추가
GET, PUT, POST 및 DELETE 요청마다 access_token을 추가하도록 backbone.js를 어떻게 구성합니까?
감사합니다.
내 REST 서버에서 모든 요청에 access_token이 있어야합니다. 즉, 게시 데이터에서 access_token을 속성과 함께 제출해야합니다.backbone.js에 access_token 추가
GET, PUT, POST 및 DELETE 요청마다 access_token을 추가하도록 backbone.js를 어떻게 구성합니까?
감사합니다.
백본은 AJAX 요청에 jQuery/Zepto를 사용하므로 해당 라이브러리에서 사용할 수있는 기능을 사용할 수 있습니다.
jQuery에서 작성한 모든 XHR 호출에 사용자 정의 헤더를 추가하려면 모든 Ajax 요청 전에 트리거되는 jQuery.ajaxSend event을 사용하고 인수로 수신하는 jqXHR을 수정하십시오. 영업 이익의 의견에 따라
편집 : 아마
전송 된 데이터를 수정하는 가장 간단한 방법은 Backbone.sync 함수를 재정의하는 것입니다. 당신은 기본 구현을 포장하고, 거기에 필요한 속성을 추가 할 수 있습니다
var nativeSync = Backbone.sync;
Backbone.sync = function (method, model, options) {
//for POST/PUT requests, add access token to the request
if(model && (method === 'create' || method === 'update')) {
var data = _.extend(model.toJSON(), {
access_token: 'token'
});
options.data = JSON.stringify(data);
}
//call the native Backbone.sync implementation
nativeSync(method, model, options);
};
좋아, 내가 jQuery를 그것을 수행하는 방법 방법을 찾은 것 같아요.
$.ajaxSetup (
{
data: { access_token: 'my_access_token' }
}
);
안녕하세요 fencliff. access_token을 헤더가 아닌 데이터 페이로드 자체에 넣으려면 어떻게해야합니까? 나는 $ .ajaxSend (function (e, jqxhr, settings) {settings.data.access_token = 'mytoken'}) 그것입니까? – Mikko
그럴 수도 있습니다.하지만 access_token을 GET 및 DELETE 요청에 추가 하시겠습니까? 이러한 동사를 사용하여 요청 본문을 제공하는 것은 일반적이지 않으며 대부분의 웹 서버는 본문을 무시합니다. – jevakallio
사실 저는 https://github.com/philsturgeon/codeigniter-restserver REST 서버를 사용하고 있으며 소스 코드를 확인한 후 요청 본문에 의존하고 있습니다. – Mikko