【问题标题】:Jquery $.get call to servlet not returning any valuesJquery $.get 调用 servlet 不返回任何值
【发布时间】:2012-09-26 19:37:40
【问题描述】:

我正在尝试使用 jquery 向 servlet 发送信息并接收来自 servlet 的响应。我知道我的问题不在于 servlet,因为当我粘贴 url 时

http://localhost:8080/WebPaymentSolution?secureToken=abcd1234569780jfhgutinjhuyikfj746534&user=Conner

我在浏览器中得到了正确的响应。这是我正在使用的完整 jquery 代码。

$.get(
"http://localhost:8080/WebPaymentSolution",
{ secureToken : 'abcd1234569780jfhgutinjhuyikfj746534', user : 'Conner' },
function( data ) {
$( '#hss_iframe' ).html( data );
}
);

我目前没有收到来自 servlet 的响应。

【问题讨论】:

  • 一个愚蠢的问题:您的 javascript 代码是否也从您的 servlet 容器中加载?
  • 没有。它与 servlet 容器完全分离。

标签: java jquery http servlets


【解决方案1】:

我实际上已经解决了这个问题,但它只有在您可以控制 servlet(服务器端解决方案)时才有效。我设置了 servlet 返回的标头响应,以允许来自任何来源的访问控制。它现在工作得很好。这是我添加的使它工作的代码行。

response.setHeader("Access-Control-Allow-Origin", "*");

我知道这并不能回答您如何从 jQuery 中执行此操作的问题,但这是对我来说最好的解决方案,所以我将继续使用它。

【讨论】:

【解决方案2】:

尝试一下:

$.ajax({ url: url, data: data, type: 'get' success: function(data){alert(data)}, dataType: dataType });

确保您使用的是获取而不是发布

如果请求发生了什么,请查看 firebug。如果您在 Firefox 中获得“永久移动”,则您正试图从脚本加载的位置向另一个域调用 ajax 请求

如果是这样,谷歌: 跨站脚本 => XSS

【讨论】:

  • 我尝试编辑此答案并在“get”后添加一个逗号,但它不允许我进行 6 个字符以下的编辑?不知道为什么会这样。
  • 我会在萤火虫的什么地方看到“永久移动”?我已经看遍了,但我没有看到。它显示我正在向 servlet 发送数据。我只是没有得到任何回应该请求的信息。我知道 XSS 问题,但如果这确实是我的问题,我想确保就是这样。谢谢。
猜你喜欢
  • 2023-03-15
  • 1970-01-01
  • 2014-06-19
  • 1970-01-01
  • 2013-04-30
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多