DoneJS StealJS jQuery++ FuncUnit DocumentJS
3.14.1
5.0.0 4.3.0 2.3.35
  • About
  • Guides
  • API Docs
  • Community
  • Contributing
  • Bitovi
    • Bitovi.com
    • Blog
    • Design
    • Development
    • Training
    • Open Source
    • About
    • Contact Us
  • About
  • Guides
  • API Docs
    • Observables
      • can-compute
      • can-define
      • can-define/list/list
      • can-define/map/map
      • can-define-stream
      • can-define-stream-kefir
      • can-event
      • can-event/async/async
      • can-event/batch/batch
      • can-event/lifecycle/lifecycle
      • can-kefir
      • can-list
      • can-map
      • can-map-backup
      • can-map-define
      • can-observation
      • can-observe
      • can-simple-map
      • can-simple-observable
      • can-stream
      • can-stream-kefir
    • Data Modeling
      • can-connect
        • behaviors
          • ./base/
          • ./cache-requests/
          • ./can/constructor-hydrate/
          • ./can/map/
          • ./can/merge/
          • ./can/ref/
          • ./constructor/callbacks-once/
          • ./constructor/
          • ./constructor/store/
          • ./data/callbacks/
          • ./data/callbacks-cache/
          • ./data/combine-requests/
          • ./data/localstorage-cache/
          • ./data/memory-cache/
          • ./data/parse/
          • ./data/url/
            • options
              • ajax
              • url
            • data methods
              • createData
              • destroyData
              • getData
              • getListData
              • updateData
          • ./data/worker/
          • ./fall-through-cache/
          • ./real-time/
        • modules
          • ./can/base-map/
          • ./can/model/
          • ./can/super-map/
          • ./can/tag/
          • ./helpers/map-deep-merge
          • ./helpers/weak-reference-map
        • data types
          • DataInterface
          • Instance
          • InstanceInterface
          • List
          • ListData
      • can-connect-cloneable
      • can-connect-feathers
      • can-connect-ndjson
      • can-connect-signalr
      • can-fixture
      • can-fixture-socket
      • can-ndjson-stream
      • can-set
    • Views
      • can-component
      • can-ejs
      • can-element
      • can-react-component
      • can-stache
      • can-stache/helpers/route
      • can-stache-bindings
      • can-stache-converters
      • can-view-autorender
      • can-view-callbacks
      • can-view-href
      • can-view-import
      • can-view-live
      • can-view-model
      • can-view-nodelist
      • can-view-parser
      • can-view-scope
      • can-view-target
      • react-view-model
      • react-view-model/component
      • steal-stache
    • Routing
      • can-deparam
      • can-param
      • can-route
      • can-route-pushstate
    • JS Utilities
      • can-assign
      • can-define-lazy-value
      • can-globals
      • can-key-tree
      • can-make-map
      • can-parse-uri
      • can-string
      • can-string-to-any
      • can-util
      • can-zone
      • can-zone-storage
    • DOM Utilities
      • can-ajax
      • can-attribute-encoder
      • can-control
      • can-dom-events
      • can-event-dom-enter
      • can-event-dom-radiochange
      • can-jquery
    • Data Validation
      • can-define-validate-validatejs
      • can-validate
      • can-validate-interface
      • can-validate-legacy
      • can-validate-validatejs
    • Typed Data
      • can-cid
      • can-construct
      • can-construct-super
      • can-namespace
      • can-reflect
      • can-reflect-promise
      • can-types
    • Polyfills
      • can-symbol
      • can-vdom
    • Core
    • Infrastructure
      • can-global
      • can-test-helpers
    • Ecosystem
    • Legacy
  • Community
  • Contributing
  • GitHub
  • Twitter
  • Chat
  • Forum
  • News
Bitovi

data/url

  • Edit on GitHub

connect.Behavior

Uses the url option to implement the behavior of getListData, getData, createData, updateData, and destroyData to make an AJAX request to urls.

Use

The data/url behavior implements many of the DataInterface methods to send instance data to a URL.

For example, the following todoConnection:

var todoConnection = connect([
  require("can-connect/data/url/url")
],{
  url: {
    getListData: "GET /todos",
    getData: "GET /todos/{id}",
    createData: "POST /todos",
    updateData: "PUT /todos/{id}",
    destroyData: "DELETE /todos/{id}"
  }
});

Will make the following request when the following methods are called:

// GET /todos?due=today
todoConnection.getListData({due: "today"});

// GET /todos/5
todosConnection.getData({id: 5})

// POST /todos \
// name=take out trash
todosConnection.createData({
  name: "take out trash"
});

// PUT /todos/5 \
// name=do the dishes
todosConnection.updateData({
  name: "do the dishes",
  id: 5
});

// DELETE /todos/5
todosConnection.destroyData({
  id: 5
});

There's a few things to notice:

  1. URL values can include simple templates like {id} that replace that part of the URL with values in the data passed to the method.
  2. GET and DELETE request data is put in the URL using param.
  3. POST and PUT requests put data that is not templated in the URL in POST or PUT body as JSON-encoded data. To use form-encoded requests instead, add the property contentType:'application/x-www-form-urlencoded' to your url.
  4. If a provided URL doesn't include the method, the following default methods are provided:
    • getListData - GET
    • getData - GET
    • createData - POST
    • updateData - PUT
    • destroyData - DELETE

If url is provided as a string like:

var todoConnection = connect([
  require("can-connect/data/url/url")
],{
  url: "/todos"
});

This does the same thing as the first todoConnection example.

CanJS is part of DoneJS. Created and maintained by the core DoneJS team and Bitovi. Currently 3.14.1.

On this page

Get help

  • Chat with us
  • File an issue
  • Ask questions
  • Read latest news