我已经创建了一个自定义端点,它返回select用户元数据。我正在尝试使用主干访问此端点。如果我的访问检查被模拟出来,它在Postman和我的主干/javascript脚本中都能正常工作。
var app2 ={};
app2.Pilot = Backbone.Model.extend({
url: POST_SUBMITTER.root + \'pilotdata/v1/pilot/\'
});
app2.pilot = new app2.Pilot();
app2.pilot.fetch(
{data: ({ id: 1 })}
).then(function(){
console.log(app2.pilot)
})
当然不能让数据赤裸裸地挂在外面。因此,我实施了访问检查,并按预期返回了未经授权的状态。因为没有返回nonce。但是如何设置nonce呢?从…起
theAverageDev 我能想出:
var app2 ={};
app2.Pilot = Backbone.Model.extend({
url: POST_SUBMITTER.root + \'pilotdata/v1/pilot/\',
sync: function(){
Backbone.sync(\'create\', this,{
beforeSend: function (xhr) {
xhr.setRequestHeader(\'X-WP-NONCE\', POST_SUBMITTER.nonce );
},
});
},
});
app2.pilot = new app2.Pilot();
app2.pilot.fetch(
{data: ({ id: 1 })}
).then(function(){
console.log(app2.pilot)
})
我承认我不完全理解这是在做什么。是否覆盖同步?但是当我这样做的时候
TypeError: undefined is not an object (evaluating \'app2.pilot.fetch(
{data: ({ id: 1 })}
是否覆盖同步未定义的获取?使用主干网传递nonce的最佳方式是什么?
我想我明白了:
var app2 ={};
app2.Pilot = Backbone.Model.extend({
url: POST_SUBMITTER.root + \'pilotdata/v1/pilot/\',
});
app2.pilot = new app2.Pilot();
app2.pilot.fetch(
{
beforeSend : function(xhr) {
xhr.setRequestHeader(\'X-WP-NONCE\', POST_SUBMITTER.nonce);
},
data: ({id: 1})
}
).then(function(){
console.log(app2.pilot)
})