Ajax without XML : Asynchronous Javascript and JavaScript/JSON(P)
Request JSON data
aja()
.url('/api/data.json')
.on('success', function(data){
//data is a JavaScript object
})
.go();
Load html into an element
aja()
.url('/views/page.html')
.into('.container')
.go();
More options using the fluent api, terrific REST client.
aja()
.method('GET')
.url('/api/customer')
.timeout(2500)
.data({firstname: 'John Romuald'})
.on('200', function(response){
//well done
})
.on('timeout', functon(){
// uh oh... Request ended. Do something fancy here, don't let your user wait forever!
})
.go();
aja()
.method('PUT')
.url('/api/customer')
.cache(false)
.body({id : 12, firstname: 'John Romuald', job : 'linguist'})
.on('200', function(response){
//well done
})
.on('40x', function(response){
//something is definitely wrong
})
.on('500', function(response){
//oh crap
})
.go();
JSONP
aja()
.url('http://otherdomain.com/api/remoteScript')
.type('jsonp')
.jsonPaddingName('callbackParameter')
.jsonPadding('someGlobalFunction')
.on('success', function(data){
//Fuk cross origin policy
})
.go();
Raw script loading
aja()
.url('http://platform.twitter.com/widgets.js')
.type('script')
.on('success', function(){
window.twttr.widgets.load();
})
.go();
You need grunt >= 0.4 as well as node and npm installed and running on your system.
git clone https://github.com/krampstudio/aja.js.git
cd aja.js
npm install
Run the tests:
grunt test
The dev of this library is based on TDD principle. So, dev means write tests. Run the developent server :
grunt devtest
So tests run once something is modified and you can access it also at http://localhost:9901/test
Contributions (issue reporting, bug fixes, feedback, typos, gimie a tip, etc.) are really welcomed! This library is developed using the TDD principles, so I accept pull request only if they come with the according unit/integration test.
I'd love if somebody can create a nice logo for aja.js...
- 0.1.0 : initial release
- 0.2.0 : added support of new HTTP methods (trace, patch and connect)
- 0.2.1 : Fix missing
main
prop in package.json
- 0.2.1 : Fix missing
- 0.3.0 : support new request type : script
- 0.3.1 : Fix issue #4 and cache management
- 0.3.2 : Fix issue #7
- 0.3.3 : Fix issue #10 and #11
- 0.3.4 : reminify
- 0.4.0 : added timeout
- 0.4.1 : Merge PR #16
Copyright (c) 2014 Bertrand Chevrier <"chevrier_bertrand gmail_com".replace(/\s/, '@').replace(/_/g, '.')>
Licensed under the MIT license.