2013-12-23 112 views
1

嗨,祝大家聖誕快樂。AngularJS http.post()返回404

我正在使用Phonegap AngularJS應用程序。我正在嘗試創建一個http Post,但是它返回一個404錯誤。我嘗試使用jQuery 1.10.2 POST,它的工作原理。我一直在這個日子,這是完成編碼應用程序的最後一部分。

我已經嘗試過不同版本的請求,但沒有成功。

下面是代碼

$scope.sendMail = function (user){ 
    console.log('sendmaul'); 


$http.post('https://cloud/email.aspx', 
    { 
     user: user.email, 
     pass: user.password, 
     to:user.recipient, 
     subject:'Test', 
     message:'My Message' 
    } 
    ) 
.success(function (data, status, headers, config){ 
     console.log('success'); 

}) 
.error(function (data,status,headers,config){ 
     console.log(data + status + config); 
    }); 
} 

我在,我需要在一個angular.module添加以下代碼的.config

$httpProvider.defaults.useXDomain = true; 
delete $httpProvider.defaults.headers.common['X-Requested-With']; 

我補充說,代碼控制器上的許多地方看.js,但我沒有看到我的應用程序的行爲差異。我也有很多http.get()請求,它們工作得很好。

- 編輯 -

https://cloud.email.aspx是不是一個真正的網站。

+1

你看過@網絡跟蹤/調試器,看看你的請求與jQuery和角度有什麼不同嗎?你嘗試過捲曲嗎? –

+0

我正在測試我的應用程序,因爲當在本地測試時,我得不到'Access-Control-Allow-Origin',因此很難檢查其他任何東西。這是我的第一個應用程序,所以我不知道如何實現角度捲曲。如果我刪除POST方法,我會得到一個405.感謝您的答覆。 – JocisPR

+0

這似乎是一個CORS問題。 – JocisPR

回答

7

解決了我的問題。

在服務器端添加CORS和一些起源異常之後。我嘗試了我的代碼,並獲得了成功和200狀態響應,但Web服務沒有做任何事情。在閱讀了其他stackoverflow post後,我發現Angularjs發佈的數據與jquery不同,所以對Web服務進行正常的POST讀取將不起作用。這篇文章有鏈接到這個site,這更詳細地解釋我的問題,它有一些代碼發送數據的方式與jquery相同。

我希望這可以幫助別人

+0

夥計,道具給你!慢慢追蹤,最終得到了該死的解釋。謝謝! –