0

使用在端口 8080 上运行的GlassFish服务器,我可以http://localhost:8080/ws/通过我的 Web 浏览器进行访问。

但是无法使用jQuery,$.ajax函数获取网页:

$.ajax({
    url: "http://localhost:8080/ws/",
    type: "GET",
    success: function() {alert("good");},
    error: function() {alert("error");}
});

每次都会显示一个带有“错误”的消息框。

这是我使用 firebug 捕获的内容:

在此处输入图像描述

但是响应标签什么也没显示:

在此处输入图像描述

谁能给我任何关于如何调试的建议?

笔记:

  1. 我尝试使用error: function(request, status, error),但没有获取任何有用的信息。
  2. 使用 Wireshark 捕获环回 HTTP 数据包,我可以看到所有响应都在那里,但如上图所示,firebug 没有显示。
4

1 回答 1

2

您已经说过您正在运行 jQuery 代码的页面来自" localhost:80",这意味着您正在运行Same Origin Policy,它可以防止跨域 ajax 调用。就 SOP 而言,端口 80 和端口 8080 是不同的来源。

为了完整起见,这里列出了两个来源必须相同才能匹配的内容:

  • 协议(so、file:vs . http:vs.https:等)
  • 港口
  • 服务器名称(例如localhost, example.comvs.sub.example.com等)

源与文档(包含脚本标记的 HTML 文件)匹配,而不是脚本文件本身的位置。

于 2013-08-06T08:32:36.703 回答