angular post json資料到伺服器,跨域訪問,多大括弧
angular.module('myApp',[]).config(function($httpProvider) { $httpProvider.defaults.useXDomain = true; delete $httpProvider.defaults.headers .common['X-Requested-With']; $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'; $httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'; // Override $http service's default transformRequest $httpProvider.defaults.transformRequest = [function(data) { /** * The workhorse; converts an object to x-www-form-urlencoded serialization. * @param {Object} obj * @return {String} */ var param = function(obj) { var query = ''; var name, value, fullSubName, subName, subValue, innerObj, i; for(name in obj) { value = obj[name]; if(value instanceof Array) { for(i=0; i
感謝,終於找到json資料post到伺服器的傳輸方式,不會再報跨域訪問和伺服器接收格式的錯誤,多個括弧的問題煩死我了,({'{"params1":"xxxx","params2":"cxxxxxx"}',''}),終於解決了,
說白了就是轉成application/x-www-form-urlencoded , 參數之間加上&
或者你post請求的data,定義由 data: {"params1":"xxxx","params2":"cxxxxxx"} 改成params1="xxxx"¶ms2="xxxx",
1.以下是我定義,主要用於解決跨域訪問,是angularjs CORS提供的標準方式
$httpProvider.defaults.useXDomain = true; delete $httpProvider.defaults.headers.common['X-Requested-With']; $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8'; $httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
2.
$httpProvider.defaults.transformRequest 這個定義被重寫,
幫我們完成了json資料請求轉成params1="xxxx"¶ms2="xxxx"格式