gpt4 book ai didi

javascript - Backbone 获取请求是 OPTIONS 方法

转载 作者:可可西里 更新时间:2023-11-01 01:17:04 25 4
gpt4 key购买 nike

我有一个 Backbone Collection 对象,其 URL 为 http://localhost:8080/api/menu/1/featured

我正在尝试执行提取操作以从 URL 检索集合并解析它。但是,在服务器端,我看到此请求的方法类型是 OPTIONS。服务器只假设支持 GET 方法。我不确定 Backbone 如何确定要使用的方法类型,以及为什么它有时会随机更改为 OPTIONS 方法类型。我正在使用 Node.js 服务器来处理请求。下面这段代码几乎就是我所做的。

var FeaturedCollection = Backbone.Collection.extend({
model:FeaturedContent,
url:function () { return url_featured; },
parse:function (response) {
console.log(response);
return response;
}
});

var featuredCollection = new FeaturedCollection();
featuredCollection.fetch();

最佳答案

已经有一段时间了,但我记得以前遇到过这个问题。这可能有两件事:默认情况下,Backbone 会尝试对您的后端执行 RESTful API 调用,这意味着 GET、POST、PUT 和 DELETE。

许多后端没有构建真正的 REST 支持,只支持 GET 和 POST。当 Backbone 发送 PUT 或 DELETE 命令时,您的浏览器(不是 Backbone)会首先自动发送一个 OPTIONS 请求,以查看是否允许它发出此类请求。如果您的服务器响应不正确,此调用将失败,并且 Backbone 可能不会执行任何操作。

要解决此问题,请设置 Backbone.emulateHTTP = true; 或者让您的服务器正确响应 OPTIONS 调用。有关详细信息,请参阅文档:http://backbonejs.org/#Sync-emulateHTTP

另一个问题是您正在跨域/子域发出 ajax 请求,您需要正确启用 CORS。这还包括正确回答 OPTIONS 请求。

关于javascript - Backbone 获取请求是 OPTIONS 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11300874/

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