【问题标题】:AJAX call through jQuery通过 jQuery 调用 AJAX
【发布时间】:2023-04-11 03:07:01
【问题描述】:

我在使用 jQuery 进行 AJAX GET 调用时遇到问题。

这是我的代码:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script>
$(document).ready(function() {    

    $.ajax({
        url : "http://localhost:8080/aplus-framework-webapp/reportServlet?",
        data: "STAT_START_DATE=20131001&STAT_END_DATE=20131031&CAMPAIGN_START_DATE=2013-10-31&CAMPAIGN_END_DATE=2013-10-01&ORDER=Stato",
        dataType: "json",
        type: "GET",
        processdata: true, 
        success : function (data) {
            alert("IN");
        },
        error : function (richiesta,stato,errori) {
            alert("NOT SUCCESS");    
        }
    });// end ajax call
}); // end ready
</script>

servlet reportServlet 是我在 localhost 中运行并返回 JSON 的 Java servlet:

{"url":"http://d1p0y6pjyasam8.cloudfront.net/PGBANNER/text/20131105100823campaigns.csv"}

我在本地测试页面,但我总是看到警报报告“不成功”。

我是 JS 新手,有人知道我的错误是什么吗?

谢谢

阿莱西奥

【问题讨论】:

  • 你的测试页的网址是什么
  • @user 您的 json 在验证时出错:第 1 行解析错误:"Nome";""Ragione soc ^ 期待 '{', '[' 请修复它并告诉我们它是否可以稍后工作
  • localhost:8080/aplus-framework-webapp/reportServlet,检查这个网址是否有效,去掉?从 URL 中,并尝试在失败块中 Lert 错误
  • 不只是打印NOT SUCCESS,而是打印实际错误。 API 在error 回调中将其提供给您!你称它为errori,所以打印出来。
  • 我修改了我的 Java servlet,在响应头中添加了:Access-Control-Allow-Origin:* 现在我可以看到警报“IN”和我的 servlet 返回的 json。

标签: javascript jquery ajax get


【解决方案1】:

Are Sure Your servlet 返回标头 json 吗?

【讨论】:

  • 我修改了我的 Java servlet,在响应头中添加了:Access-Control-Allow-Origin:* 现在我可以看到警报“IN”和我的 servlet 返回的 json。
  • 我在标题中指定了响应的内容类型,但我没有指定参数:Access-Control-Allow-Origin。所以我的标题是错误的,我们可以说。谢谢!
  • 那么去掉问号真的解决了问题吗?
  • 不,这与标题无关。 AJAX 请求违反了Same-origin policy,已通过将服务器配置为Access-Control-Allow-Origin:*
【解决方案2】:

如果您请求的网站和您请求的 servlet 没有相同的端口(例如 80 和 8080),它将破坏 Same Origin Policy

See this stackoverflow question 形成更多信息和答案。

【讨论】:

  • 我修改了我的 Java servlet,在响应头中添加了:Access-Control-Allow-Origin:* 现在我可以看到警报“IN”和我的 servlet 返回的 json
  • +1 - 这是正确答案,因为 OP 将服务器重新配置为 Access-Control-Allow-Origin:*
【解决方案3】:

尝试删除网址末尾的问号

【讨论】:

  • 无事可做。我删除了问号,但结果是相同的莫里斯。
  • 我修改了我的 Java servlet,在响应头中添加了:Access-Control-Allow-Origin:* 现在我可以看到警报“IN”和我的 servlet 返回的 json。
【解决方案4】:

我假设您的意思是“本地页面”是指您在硬盘驱动器上的本地文件中尝试此操作。由于安全原因,主要在所有浏览器中都禁用了此功能。您可以在此处找到更多信息,了解如何在 Google Chrome 中禁用此功能以用于开发目的:

http://opensourcehacker.com/2010/11/29/disabling-cross-domain-security-check-for-ajax-development-in-google-chrome/

【讨论】:

  • 我修改了我的 Java servlet,在响应头中添加了:Access-Control-Allow-Origin:* 现在我可以看到警报“IN”和我的 servlet 返回的 json。
猜你喜欢
  • 1970-01-01
  • 2010-11-27
  • 2010-12-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多