【问题标题】:Unable to retrieve JSON data from web service无法从 Web 服务检索 JSON 数据
【发布时间】:2015-12-21 02:05:46
【问题描述】:

我有一个包含 JSON 数据的外部 Web 服务。我已经通过 JSON Validator 网站验证了数据是 JSON。但是,下面的代码成功函数根本不运行。 Web 服务要求通过 url 传递电子邮件和密码才能显示 JSON 数据。

访问web服务的url如下: http://example.com/Email/Password

如何修复以下代码来解决此问题。任何帮助将不胜感激。

<script type="text/javascript">
    $(document).ready(function () {
        $("#frmLogin").submit(function (event) {
            event.preventDefault();
            var pm_url = 'http://example.com/';
            pm_url += $("#Email").val();
            pm_url += '/';
            pm_url += $("#Password").val();
            $.ajax({
                url: pm_url,
                type: 'GET',
                dataType: 'json',
                success: function(){
                    alert("Success");
                }
            });
        });
    });
</script>

谢谢。

【问题讨论】:

  • 控制台是否有任何错误?
  • 可以加error: function...。
  • example.com 是您的服务器域吗?还是外部的?
  • 我要检查的几件事:成功警报是否发生?如果是这样,您可能需要在回调函数中使用结果参数来访问生成的 JSON。如果不是,响应码是什么?另外,在发出 ajax 请求之前,pm_url 的值是否正确?
  • 您使用的是哪个 jQuery 版本?添加error 回调而不是仅使用success 回调。此外,请考虑在此调用之后使用 .complete()。

标签: javascript jquery json ajax


【解决方案1】:

所以这似乎是一个CORS 问题,与安全性有关。除非您明确允许,否则浏览器将不允许分派域外部的请求。 This 是一篇很好的文章,详细介绍了几种允许 CORS 请求的方法,如果你在周围搜索一下,你会发现更多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 2016-05-04
    • 1970-01-01
    相关资源
    最近更新 更多