我正在使用jQuery执行
AJAX POST,如下所示:
self.post = function (path,data) { return $.ajax({ url: this.createUri(path),type: "POST",contentType: "application/json",dataType: "json",data: ko.toJSON(data) }); };
这里我只返回AJAX Deferred对象.响应由另一个对象处理:
api.post(menuItemsUri,self.newItem) .done(function (data,textStatus,request) { console.log(request.getResponseHeader("Location")); // undefined }) .always(function () { // reset the current item self.newItem.update({}); });
服务器返回201 Created Response并设置Location标头.我可以在Chrome网络标签中看到这一点:
Access-Control-Allow-Origin:* Cache-Control:no-cache Content-Length:0 Date:Thu,07 Feb 2013 10:25:04 GMT Expires:-1 Location:http://localhost:49978/sites/1/menus/65/items/19 Pragma:no-cache
但是,在jQuery AJAX回调中传递的XmlHttpRequest对象中缺少Location标头.