我正在尝试创建一个简单的 Jquery 移动应用程序。我的设置如下:
- jQuery 客户端在localhost:9090/myapp上运行。
- 我的服务器在localhost:9010/paperboy上运行
- 因为我在 Windows 上,所以在服务器端我使用了一个简单的服务器,使用“ bottle ”创建,这是一个 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 源策略错误”,一旦我将内容类型添加到我的服务器,它很快就消失了。
现在 ajax 调用没有错误地通过,但总是调用“错误”处理程序。我尝试了各种组合,但都是徒劳的。我想不通的一件事是向我的服务器添加 jsonp 支持。
感谢您在此问题上的任何帮助,并提前感谢您提供的所有帮助。
谢谢。