出于某种原因,这一点:
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;
});
失败与凄惨
“OPTIONS我的网址(匿名函数)@ 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 $ @消化angular.js:14282个$ get.Scope $ @适用angular.js:14571(匿名函数)@ angular.js:21571jQuery.event.dispatch @的jquery.js:4430jQuery.event.add.elemData.handle @的jquery.js:4116
(指数):1的XMLHttpRequest不能加载我的网址。 没有“访问控制允许来源”标头出现在所请求的资源。 原产地“ 的http://本地主机:5000 ”因此不允许访问。 响应有HTTP状态代码404”
他们是相同的URL。 跆拳道。 我有一个鬼鬼祟祟的怀疑,“跨域:真正的”在jQuery的选项就是为什么jQuery的一个作品,但如果是这样的话,那么问题是:
我该怎么做,与角?
- 当使用jQuery的默认AJAX方法,范围不与结果更新,但我知道数据被分配,因为我记录它,如果我再次提交请求,范围不更新与第二值。
其次question-为什么不是我的结果视图更新?
更新:
这是失败的原因无关,与我越来越从服务器返回的响应,问题是,角度正在改变这个POST请求到一个OPTIONS请求:(从谷歌铬合金XHR工具采取:)
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请求说。
...
那么,如何让我的角度......这样做?
须─它为什么这样做?