2016-02-27 39 views
0

這是代碼。 我不知道什麼是錯誤的代碼,它不工作。我猜測頭有一些問題,但語法是正確的。沒有-DB(數據庫)需要在json中顯示輸出並將其輸出到其他服務器,如「www.hashserver.com」,但使用角度

 <script> 
angular.module('submitExample', []) 
    .controller('ExampleController', ['$scope', '$http', function($scope, $http) { 
    $scope.list = []; 
    $scope.text = ''; 
    $scope.submit = function() { 
     if ($scope.text) { 
     $scope.list.push(this.text); 
     $scope.text = ''; 
     $http.post("www.sendtohashserver.com/db",method: "POST", {headers: {'Content-Type': 'application/json'} $scope.list).success(function(data, status) { 
     console.log(data); 
     }) 
     } 
    }; 
    }]); 
</script> 
<form ng-submit="submit()" ng-controller="ExampleController"> 
    Enter Name: 
    <input type="text" ng-model="text" name="text" /> 
    <input type="submit" id="submit" value="Submit" /> 
    <pre>list={{list| json}}</pre> 
</form> 
+0

「它不工作」:請定義「它不工作」是什麼意思?你有錯誤信息嗎?什麼都沒有發生或什麼? –

+0

1)Uncaught SyntaxError:missing)參數列表後 angular.js:38未捕獲 2)錯誤:[$ injector:modulerr] http://errors.angularjs.org/1.5.0/$injector/modulerr?p0 = submitExample&P1 =呃...... ogleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.5.0%2Fangular.min.js%3A20%3A449) – koku19

+0

但我已經檢查了所有的語法 – koku19

回答

0

您應該使用$http服務是這樣的:可用here

$http.post("www.sendtohashserver.com/db", $scope.list, { 
    headers: { 'Content-Type': 'application/json' } 
}).success(function(data, status) { 
    console.log(data); 
}); 

的jsfiddle。

$http的文檔陳述爲here

Shortcut methods are also available. All shortcut methods require passing in the URL, and request data must be passed in for POST/PUT requests. An optional config can be passed as the last argument.

$http.get('/someUrl', config).then(successCallback, errorCallback); $http.post('/someUrl', data, config).then(successCallback, errorCallback);

+0

獲取有關提交值 錯誤此錯誤:XMLHttpRequest的不能加載http://.....gpsdb/。對預檢請求的響應不會通過訪問控制檢查:請求的資源上不存在「訪問控制 - 允許來源」標頭。 Origin'eaxmple.com';因此不允許訪問 – koku19

+0

這是因爲您要發佈的網址與您網頁的託管位置不同。有一種稱爲CORS的機制,可用於控制哪些HTTP動詞可以從哪個域使用。但是,必須在服務器端啓用,所以如果你不控制服務器,那麼你運氣不好。 –

+0

服務器接受JSON和我的輸出不在JSON是因爲該服務器不接受 – koku19

0

語法不正確:$ http.post的第二個參數的語法錯誤;支架不平衡; $ scope.list出現在無效位置。 您提供的代碼會引發JavaScript錯誤。

而且它不打算通過HTTP 方法當你調用$ http.post,其方法已經在它的名字。

它有助於正確縮進代碼以發現其中的一些問題。這裏是你可以嘗試什麼:

$http.post(
    "www.sendtohashserver.com/db", 
    $scope.list, 
    { 
     headers: {'Content-Type': 'application/json'} 
    } 
).success(function(data, status) { 
    console.log(data); 
}); 

如果調用服務器請求數據進行格式化JSON字符串,然後調用JSON.stringify

$http.post(
    "www.sendtohashserver.com/db", 
    JSON.stringify($scope.list), 
    { 
     headers: {'Content-Type': 'application/json'} 
    } 
).success(function(data, status) { 
    console.log(data); 
}); 

然而,你的要求是cross-origin request,將被拒絕如果被叫服務未將您的域名列入白名單。

+0

錯誤:XMLHttpRequest無法加載http://.....gpsdb/。對預檢請求的響應不會通過訪問控制檢查:請求的資源上不存在「訪問控制 - 允許來源」標頭。 Origin'http://eaxmple.com'因此不被允許訪問。 – koku19

+1

與您的語法錯誤無關。看看CORS。 https://en.wikipedia.org/wiki/Cross-origin_resource_sharing –

+0

錯誤消息說明了這一切。被叫網站不允許來自其他域的請求,如您的網站。 – trincot

相關問題