1

取得、作成、保存などのすべての ajax リクエストに ?apiKey=12341234 を追加するにはどうすればよいですか... MongoLabs api にはこれが必要であり、これを完全に機能させるのに苦労しています。

私は現在、バックボーン チュートリアルのスクリーンキャストに取り組んでおり、著者は php フレームワークを使用してバックボーン アプリの API を作成しています。私はMongoLabsの無料の休息APIを使用することで賢くなると思っていました...そして、ドキュメントを読んでそれを機能させようとして2日間燃え尽きました。

最も近いのは、フェッチが呼び出されたときにパラメーターを渡すことです (作成では機能しません):検索パラメーターを使用してバックボーン コレクションをフェッチする

{ data: $.param({'apiKey':'50b28f80e4b0995a3f4312a0'}) }

作業 URL:
https://api.mongolab.com/api/1/databases/bbone_rest/collections/tasks/2/?q=&apiKey=50b28f80e4b0995a3f4312a0

jsfiddle のコード: http://jsfiddle.net/py4Pv/

# Encapsulate classes
window.App =
  apiKey: { data: $.param({'apiKey':'50b28f80e4b0995a3f4312a0'}) }
  Models: {}
  Views: {}
  Collections: {}



# The model for a single task
class App.Models.Task extends Backbone.Model
  #override backbones 'id' attr to match mongo's '_id' attr
  idAttribute: "_id"
  defaults:
    title: "None provided"
    completed: 0


# The model for a collection of tasks
class App.Collections.Tasks extends Backbone.Collection
  model: App.Models.Task
  url: 'https://api.mongolab.com/api/1/databases/bbone_rest/collections/tasks/'





##################### Views, prob not important ########################  


# View for a list of tasks
class App.Views.Tasks extends Backbone.View
  tagName: 'ul'

  initialize : () ->
    @collection.on 'add', @addOne

  render: ->
    # Cycle through each task in collection and call @addOne
    @collection.each @addOne
    return this

  addOne: (task) =>
    task = new App.Views.Task({ model: task })
    @$el.append( task.render().el )


# View for a single task unit
class App.Views.Task extends Backbone.View
  tagName: 'li'
  render: ->
    @$el.html( this.model.get('title'))
    return this

* 編集 * 追加時のヘッダー情報: $.ajaxSetup({ data: { key: "value"} after a task.destroy()

Request URL:https://api.mongolab.com/api/1/databases/bbone_rest/collections/tasks/1
Request Method:OPTIONS
Status Code:400 Bad Request

Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:origin, accept
Access-Control-Request-Method:DELETE
Connection:keep-alive
Host:api.mongolab.com
Origin:null
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11

Response Headersview source
Connection:close
Content-Length:50
Content-Type:application/json;charset=utf-8
Date:Fri, 30 Nov 2012 06:42:57 GMT
Server:Apache/2.2.22 (Ubuntu)
4

3 に答える 3

2

urlモデル/コレクションのプロパティに関数を指定できます。これにより、毎回クエリ文字列に API を追加できるようになります。つまり、次のようなものです (申し訳ありませんが、Mootools の構文がよくわかりません):

url: () => 
   return 'https://api.mongolab.com/api/1/databases/bbone_rest/collections/tasks/' + this._id + '?api=' + App.apiKey
于 2012-11-30T04:58:15.690 に答える
0

やってみました:

$.ajaxSetup({
  data: {
    key: "value"
  }

これにより、すべての ajax リクエストにキー パラメータが追加されます。ajaxSetup で宣言されたデータを持つことは累積的です。

于 2012-11-30T05:04:24.893 に答える