Ресурс AngularJS $ делает запрос HTTP OPTIONS вместо HTTP POST для метода $ save

Я в процессе написания простого библиотечного приложения, чтобы подготовиться к большему проекту с AngularJS. После прочтения много онлайн об использовании$resource чтобы взаимодействовать с RESTful API, я решил, что он, вероятно, даст некоторые преимущества экономии времени и масштабирования для его реализации вместо использования$http за каждый запрос. Проблема в том, что по какой-то причине (яm не является экспертом по CORS, и запрос передается междоменный) при использовании$save метод моей консоли Node.js показывает:

OPTIONS /books 200 1ms - 161b 

С использованиемquery() метод работает нормально - консоль Node показывает: I '

GET /books 200 1ms - 228b

Мы застряли на несколько часов в этом месте, пытаясь изменить варианты ниже, но это всегда заканчивается запросом OPTIONS вместо POST (что и должно быть в соответствии с документацией Angular) для$save метод.

AngularJS Web App

app.js

var libraryApp = angular.module('libraryApp', ['ngResource', 'ngRoute', 'libraryControllers']);

libraryApp.factory('$book', ['$resource', function ($resource) {

    return $resource('http://mywebserver\\:1337/books/:bookId', { bookId: '@bookId' });
}]);

controllers.js

var libraryControllers = angular.module('libraryControllers', []);

libraryControllers.controller('BookCtrl', ['$scope', '$book', function($scope, $book) {

    ...

    $scope.addBook = function () {
        var b = new $book;
        b.isbn = "TEST";
        b.description = "TEST";
        b.price = 9.99;
        b.$save();
    };
}]);
Node.js с Express REST API

app.js

var express = require('express'),
    books = require('./routes/books'),
    http = require('http'),
    path = require('path');

var app = express();

...

// enable cross-domain scripting
app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", req.headers.origin);
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    next();
});

// routing
app.get('/books', books.getAll);
app.get('/books/:isbn', books.get);
// This is what I want to fire with the $save method
app.post('/books', books.add);

http.createServer(app).listen(app.get('port'), function(){
    console.log('Express server listening on port ' + app.get('port'));
});

./routes/books.js

...

exports.add = function(req, res) {

    console.log("POST request received...");
    console.log(req.body.isbn);
};

Попробовал поставить эту строку в моей функции конфигурацииdelete $httpProvider.defaults.headers.common["X-Requested-With"]; но без изменений.

Я не Angular / Node Pro, но сейчас яЯ думаю, что эточто-то делать с междоменной и, как я уже сказал, яЯ не эксперт по CORS.

Заранее спасибо.

Ответы на вопрос(2)

Ваш ответ на вопрос