Почему-то это:
return jquery.ajax('my url', {
crossDomain : true
, data : JSON.stringify({"brand": self.current})
, type : 'POST'
}).success(function(data){
scope.results = data;
});
и/или это:
curl -X POST -H "Content-Type: application/json" -d '{"brand":"target"}' myUrl
работает нормально, но это:
var req = {
method: "POST"
, url : "my url"
, data : JSON.stringify({"brand": self.current})
};
return $http(req).
success(function(data){
scope.results = data;
});
терпит неудачу с
«ОПЦИИ мой URL (анонимная функция) @ angular.js: 9866sendReq @ angular.js: 9667 $ get.serverRequest @ angular.js: 9383processQueue @ angular.js: 13248 (анонимная функция) @ angular.js: 13264 $ get.Scope .$eval @ angular.js:14466$get.Scope.$digest @ angular.js:14282$get.Scope.$apply @ angular.js:14571(анонимная функция) @ angular.js:21571jQuery.event.dispatch @ jquery.js:4430jQuery.event.add.elemData.handle @ jquery.js:4116
(index):1 XMLHttpRequest не может загрузить мой URL. В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Источник «http://localhost:5000' поэтому доступ запрещен. В ответе был код состояния HTTP 404».
Это один и тот же URL. Втф. У меня есть подозрение, что параметр «crossDomain: true» в jquery является причиной того, что jquery работает, но если это так, то вопрос:
как мне это сделать с угловым?
-- При использовании метода ajax по умолчанию jquery область не обновляется с результатами, но я знаю, что данные назначаются, потому что я выхожу из нее, и если я снова отправлю запрос, область обновляется со вторым стоимость.
Второй вопрос: почему мое представление не обновляется с результатами?
Обновить:
Причина, по которой это не работает, не имеет ничего общего с ответом, который я получаю от сервера, проблема в том, что Angular преобразует этот запрос POST в запрос OPTIONS: (взято из инструмента xhr google chromes :)
Remote Address: the remote address
Request URL:the request endpoint
Request Method:OPTIONS <-------------
Status Code:404 Not Found
Дальнейший осмотр выявляет:
OPTIONS /my url HTTP/1.1 <--------------
Host: my urls host
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Access-Control-Request-Method: POST
Origin: http://localhost:5000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36
Access-Control-Request-Headers: accept, charset, content-type
Accept: */*
Referer: http://localhost:5000/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
это не то, что он должен делать, потому что я специально говорю в объекте req, который я передаю $http, что это запрос POST.
...
Итак, как мне сделать угловой... НЕ делать этого?
также - почему это делается?
$scope.$apply()
, потому что angular не знает о том, что происходит в jquery. - person tandrewnichols   schedule 20.04.2015