【发布时间】:2013-03-30 08:55:57
【问题描述】:
我的 Grails 应用程序中有一个 Web 服务方法,它以 json 格式呈现数据。
def getCityListJson(){
def cityList= City.list() as JSON
render cityList
}
这基本上是一个控制器动作。
现在我想从我的 PHP 应用程序中调用这个方法
我已经尝试在我的 php 页面中使用 Jquery
<script type="text/javascript">
$(function(){
$("#geCity").click(function(){
$.getJSON('http://localhost:8080/city/getCityListJson',
function(data) {
console.log(data)
});
});
});
</script>
但没有得到任何回应..
我是 web 服务概念的新手.. 调用 web 服务的正确方法是什么?
感谢您的帮助。
【问题讨论】:
-
两个应用程序是在同一个域 (
localhost:8080) 上运行还是不同? -
您的浏览器控制台出现什么错误?
-
Ajax JSON 不能跨域工作,您应该改用 JSONP。或 CORS
-
在阅读了您对@Igor 的回复后,如果应用程序在不同的域上运行,您为什么要调用“localhost”,而不是调用运行 Web 服务的主机? [更新] 正如 Igor 提到的,您可能正在寻找 JSONP 或类似的...
-
如果您的 grails 操作 没有 被调用,那么您的 jQuery 回调中的 URL 不正确。如果您的操作 is 被调用,但 jquery 没有返回 json 数据,那么您遇到了“同源策略”问题,需要使用
JSONP。无论如何,这与您使用的框架(grails/php)无关,您可以考虑编辑您的问题以反映这一点。
标签: jquery web-services rest grails getjson