gpt4 book ai didi

php - 将自定义 HTTP header 传递给 RESTful 请求

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:45:10 25 4
gpt4 key购买 nike

我正在尝试将 Backbone 集成到 Yii 中,因此我需要 REST。所以我安装了一个 Yii 扩展,restfullyii ,它使用需要传递给请求的用户名和密码。问题是我不知道如何使用 Backbone 执行此操作。

通缉请求示例:

List
curl -i -H "Accept: application/json" -H "X_REST_USERNAME: admin@restuser" -H "X_REST_PASSWORD: admin@Access" http://yii-tester.local/api/sample/
curl -i -H "Accept: application/json" -H "X_REST_USERNAME: admin@restuser" -H "X_REST_PASSWORD: admin@Access" http://yii-tester.local/api/sample/limit/1
curl -i -H "Accept: application/json" -H "X_REST_USERNAME: admin@restuser" -H "X_REST_PASSWORD: admin@Access" http://yii-tester.local/api/sample/limit/10/5 (limit/offeset)

当前的错误响应,这完全有道理..:

{
"success": false,
"message": "You are not authorized to proform this action.",
"data": {"errorCode":500}
}

有没有人知道如何在整个 Backbone 中发送这些值?

最佳答案

Backbone 将其 XHR 请求委托(delegate)给 jQuery/Zepto,这是您必须修改的部分。

最简单的解决方案可能是通过$.ajaxSetupheaders options 提供默认选项。

headers(added 1.5)
Default: {}

A map of additional header key/value pairs to send along with the request. This setting is set before the beforeSend function is called; therefore, any values in the headers setting can be overwritten from within the beforeSend function.

你可以这样设置:

$.ajaxSetup({
headers:{
X_REST_USERNAME: "admin@restuser",
X_REST_PASSWORD: "admin@Access"
}
});

发送的每个请求都将具有自定义 header 。参见 http://jsfiddle.net/nikoshr/j5Rr4/

或者你可以向每个请求传递额外的选项,Backbone 会将它们转发给 jQuery:

var m = new Backbone.Model();   
m.fetch({
headers:{
X_REST_USERNAME: "admin@restuser",
X_REST_PASSWORD: "admin@Access"
}
});

http://jsfiddle.net/nikoshr/j5Rr4/2/

最后,您可以覆盖 Backbone.sync 来为每个请求添加 header :

Backbone.realsync = Backbone.sync;
Backbone.sync = function(method, model, options) {
options || (options = {});
options.headers = {
X_REST_USERNAME: "admin@restuser",
X_REST_PASSWORD: "admin@Access"
};

return Backbone.realsync.call(model, method, model, options);
};

var m = new Backbone.Model();
m.fetch();

http://jsfiddle.net/nikoshr/j5Rr4/4/

关于php - 将自定义 HTTP header 传递给 RESTful 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13626691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com