关于Ext.Ajax请求PHP的问题

xiesisi3 2010-05-11 11:21:21
写了一个Ext的Ajax示例,其中当我的URL定向到Servlet的时候,成功,返回正常结果,用firebug查看"响应"部分,得到的是一个json字符串{data : '11111'}
页面调用:
						var jsonString = Ext.util.JSON.decode(response.responseText);
Ext.MessageBox.alert("result : ", jsonString.data);

Servlet代码:
	public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username + "\t" + password);
PrintWriter out = response.getWriter();
out.println("{data : '11111'}");
out.flush();
out.close();
}


但是当我的URL定向到php的时候,成功是成功了,但返回的结果是整个PHP文件的代码,然后alert出来是空值,firebug里的"响应部分是整个PHP文件的代码,不是json字符串",要怎么做才能拿到"data"这个值?

php代码:

<?php
$result = "{data : '11111'}";
echo '('.$result.')';
?>
...全文
59 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
海子尘 2010-05-12
  • 打赏
  • 举报
回复
hoojo 2010-05-11
  • 打赏
  • 举报
回复

可以跳过php页面,只请求servlet就可以了
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username + "\t" + password);
PrintWriter out = response.getWriter();
out.print("{data : '11111'}");
out.flush();
out.close();
}
servelt不实现跳转页面既可以了。
如果确实要定向php就在php页面输出{data : '11111'}当你请求的时候,页面只显示{data : '11111'}
说明是正确的,有其他字符就错误了。然后用ajax请求请求这个php页面就可以了。
xiesisi3 2010-05-11
  • 打赏
  • 举报
回复
找到错误原因了,原因是我的PHP是在eclipse工程目录下而不是apache服务器的工程目录下,所以访问返回的结果不正确.

不过还是碰到了问题,我的eclipse工程项目是部署在tomcat服务上,然后访问的js页面里的Ajax的url如果是定向到apache服务器下的PHP的时候,会出现 Ajax返回failure的情况.
但当我直接从硬盘访问该js页面,然后同样AJAX的URL是定向到APACHE服务器下的PHP,AJAX返回的是正常的结果.(同样的程序和代码)

不知道是不是从一个服务器定向到另外一个服务器的时候会有什么安全策略或什么其它的情况?

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧