Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $http.post不发送任何数据_Javascript_Json_Post_Angularjs - Fatal编程技术网

Javascript $http.post不发送任何数据

Javascript $http.post不发送任何数据,javascript,json,post,angularjs,Javascript,Json,Post,Angularjs,我一直在尝试简单地发布JSON数据,但由于某些原因,它无法工作 angular.module('pocket.controllers', []) .controller('ArticleList', function($scope, $http) { $scope.signIn = function() { var postObject = new Object(); postObject.consumer_key = pocketKey; p

我一直在尝试简单地发布JSON数据,但由于某些原因,它无法工作

angular.module('pocket.controllers', [])
  .controller('ArticleList', function($scope, $http) {

    $scope.signIn = function() {

      var postObject = new Object();
      postObject.consumer_key = pocketKey;
      postObject.redirect_uri = "http://www.example.com";

      $http.post(apiUrl, postObject).success(function(data){
        alert(data);
      });
    }

  })
当我在Chrome inspector中检查请求时,似乎没有实际发布任何数据:

Request URL:https://getpocket.com/v3/oauth/request
Request Method:OPTIONS
Status Code:400 Bad Request
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, origin, x-requested-with, content-type
Access-Control-Request-Method:POST
Cache-Control:no-cache
Connection:keep-alive
Host:getpocket.com
Origin:http://pocket.dev:8000
Pragma:no-cache
Referer:http://pocket.dev:8000/app/index.html
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36
Response Headersview source
Cache-Control:private
Connection:keep-alive
Content-Length:15
Content-Type:text/html; charset=UTF-8
Date:Wed, 24 Jul 2013 17:18:04 GMT
P3P:policyref="/w3c/p3p.xml", CP="ALL CURa ADMa DEVa OUR IND UNI COM NAV INT STA PRE"
Server:Apache/2.2.25 (Amazon)
Status:400 Bad Request
X-Error:Missing consumer key.
X-Error-Code:138
X-Powered-By:PHP/5.3.27
X-Source:Pocket

如您所见,X错误为“缺少消费者密钥”,这意味着数据未正确发布。

将这一行添加到代码中

$http.defaults.headers.post[“内容类型”]= “application/x-www-form-urlencoded”

修改后的代码将是这样的

angular.module('pocket.controllers',[]).controller('ArticleList', 函数($scope,$http){

})


可能的重复也不起作用,我认为这与他们的服务器不支持CORS有关,因此无法执行跨源POST请求。您是在单个域中执行此操作,还是有跨域POST请求?不,这是对Pocket API的跨域请求:
$scope.signIn = function() {

  var postObject = new Object();
  postObject.consumer_key = pocketKey;
  postObject.redirect_uri = "http://www.example.com";
  $http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
  $http.post(apiUrl, postObject).success(function(data){
    alert(data);
  });
}