gpt4 book ai didi

javascript - 在主干中启用 CORS

转载 作者:行者123 更新时间:2023-12-03 08:52:02 25 4
gpt4 key购买 nike

我是 Backbone 新手,终于在一个小项目上取得了一些进展。我认为我正在正确执行 ajax get 请求,但我现在在浏览器中收到此错误:

“XMLHttpRequest 无法加载 https://api.flickr.com/services/rest/?jsoncallback= ?。Access-Control-Allow-Methods 不允许方法 FLICKR.PHOTOS.SEARCH。”

如何在 Backbone 中启用 CORS?

我的观点:

var PictureView = Backbone.View.extend({
//the goal of this app is to append HTML to the appID div. on button click, fetch a random image from flickr.
el: "#app",


initialize: function() {
$('.button').click(function() {
this.request()
}.bind(this))
},

request: function() {
console.log('asdfkjsf')

$.ajax({

url: "https://api.flickr.com/services/rest/?jsoncallback=?",
method: 'flickr.photos.search',
api_key: "mykey",
format: 'json',
nojsoncallback: 1,
per_page: 1,
success: function(result) {
console.log(arguments)

this.$el.append('<img src="' + result + '" />')
}.bind(this)

});
}


})

我的模型:

var Picture = Backbone.Model.extend({
defaults: {

image: ""
}

});

最佳答案

为了回答您的直接问题,您没有在 Backbone 中启用 CORS。您(或者,在本例中更准确地说是雅虎)将在服务器上启用 CORS,例如Flickr。

但问题不在于 CORS,而在于 CORS。您没有正确使用 Flickr API。 $.ajax 调用的这些参数根本就是错误的。 Flickr 在其 REST documentation 中提供了一个示例 URL .

更重要的是,您通过从 View 发出 API 请求来严重滥用 Backbone。这应该在模型或集合中完成。而且,考虑到上述细节,您不需要提供自己的 AJAX 调用;当提供正确的 URL 时,标准 Backbone.Sync 将正常工作。

我建议退后一步,花一些时间学习 REST API 和 Backbone 最佳实践。网络上有很多可用的教程。一旦您更加熟悉这些技术,您就会发现开发应用程序变得更加容易。

关于javascript - 在主干中启用 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32639735/

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