我有一个JSP页面,我想对不同域上的PHP服务器进行jQuery AJAX调用。这可能吗?我可能遇到什么样的错误?
答案 0 :(得分:1)
这是可能的,但它有点棘手。要克服跨域问题,您需要使用JSONP技术,而不是我们最常使用的常用AJAX。
JSONP的主要思想是在HTML文档中动态创建标记,向所请求的服务器发送回调函数名称。然后,服务器将通过返回有效的Javascript脚本来调用返回数据的回调。请注意,您只能发出GET请求,不要打扰POST。
答案 1 :(得分:0)
jsonp是一种可能的解决方案;另一种方法是在PHP服务器上创建一个API / Web服务,它将返回一些json或xml,并从你的java代码中调用它。这样你的ajax /客户端代码就可以访问你的应用程序/域中的一个端点,你可以使用任何可用的java http库发布到你的php脚本并获得响应。
使用Web服务方法很方便,以防您最终想要在将来从不同的应用程序中检索相同的数据。
答案 2 :(得分:0)
如果您控制其他域,则可以让它发出CORS(跨源资源共享)策略;这听起来比它更可怕。这将允许您进行跨域AJAX请求。
以下是有关如何设置的指南:http://fritsvancampen.wordpress.com/2013/02/03/cross-site-origin-requests-aka-cross-origin-resource-sharing/
如果您不控制域并且没有可用的JSONp API,则必须使用由citelao链接的代理,该代理随附自身的警告。