2012-07-23 25 views
0

我試圖驗證到一個API,只允許您使用POST以JSON作爲表單數據進行驗證,在jQuery的跨域POST在PHP不工作纖薄框架

{"username":"myusername","password":"mypassword"} 

我的格式我一直試圖用三天的時間來處理jQuery,但我遇到了問題,因爲它是跨域的。我怎樣才能做到這一點?

錯誤消息:

"NetworkError: 405 Method Not Allowed 

我的代碼:

var username = "myusername"; 
var password = "mypass" 
var authurl = "https://myurl"; 

$.ajax 
({ 
    type: "POST", 
    url: authurl, 
    dataType: 'json', 
    contentType: "application/json", 
    async: false, 
    data: {'json':'{"username":"' + username + '", "password":"' + password + '"}'}, 
    success: function (result) { 
     $('#json').html(result); 
    } 
}) 

回答

1

我有同樣的問題,但我用dataType:jsonp它爲我工作。 這裏是jQuery Docs更多細節

$.ajax 
({ 
    type: "POST", 
    url: authurl, 
    dataType: 'jsonp', 
    context: document.body, 
    async: false, 
    data: {'json':'{"username":"' + username + '", "password":"' + password + '"}'}, 
    success: function (result) { 
     $('#json').html(result); 
    } 
}) 
+0

它不適合我 – sree 2012-07-23 08:14:09

+0

嘗試添加'上下文:document.body,'並刪除'contentType:「application/json」,' – Dips 2012-07-23 23:20:03

0

它一般是不可能做一個異步POST請求到另一個域,由於同源策略。

JSONP僅適用於您允許將<script>標籤插入到DOM中,並且它們可以指向任何地方並且不使用XMLHttpRequest(ajax)。

如果您嘗試使用的API支持JSONP,那麼該選項可能是一個選項,否則您可能需要查看一個使用PHP發佈數據的解決方案,然後使用Ajax調用該PHP腳本你自己的服務器等