我想創建一個簡單的Jquery移動應用程序。 我的設立情況如下:9090/MYAPP:jquery跨域ajax請求總是錯誤
- jQuery的客戶端上本地主機上運行。
- 我的服務器上本地主機上運行:9010 /報童
- 因爲我是在Windows上,在服務器端我用一個簡單的服務器使用「瓶」,這是一個Python的微框架建立。
- 服務器根據請求返回json,我可以在Chrome或Firefox中清楚地看到它。
- 我已驗證我的回覆,並且它是有效的JSON。
我面對的問題是,我希望我的客戶端從服務器響應中讀取json。
但是因爲它是一個跨域問題,所以無法這樣做。
下面是客戶端我的Ajax代碼:
$.ajax({
url: "http://localhost:9010/paperboy/toi",
type:"GET",
data:$(this),
dataType:"jsonp",
//jsonp:"callback", no support on the server
success:function(result){
console.log("ajax result: " + result);
},
error:function(e){
console.log("Error :" + e);
}
});
和我的瓶子服務器的代碼是:
from bottle import route, run, template, response
from paperboy import getToiNews
''' call http://localhost:9010/paperboy/toi in browser'''
@route('/paperboy/:source')
def index(source='All'):
print "requesting news list for %s" % source
resultJson = getToiNews()
response.content_type = "application/javascript"
return resultJson
run(host='localhost', port=9010)
不過上運行我最初是越來越「阿賈克斯出身的政策錯誤」的應用程序,它很快一旦我將內容類型添加到我的服務器,就離開了。
現在ajax調用沒有錯誤,但始終調用「錯誤」處理程序。我嘗試了各種組合,但都徒勞無功。我無法弄清楚的一件事是將jsonp支持添加到我的服務器。
我很感謝在這個問題上的任何幫助,並提前感謝您的所有幫助。
謝謝。
我也嘗試從服務器設置內容類型爲「application/json」。 – 2013-02-13 08:40:40