嵌套的$ .getJSON()在Cordova中不起作用

时间:2016-06-12 08:21:16

标签: jquery rest cors

请查看以下代码,我无法执行嵌套的$ .getJSON()。我的网址是RESTful,当我在小提琴手中单独运行它们时,它们正在完美地工作。我也在方法中处理CORS。



var uri = "http://www.XXXXXX.XXX/WebService/api/controllername/Chk_mehtod/123";

$.getJSON(uri)
.done(function (data) {
   if (jQuery.isEmptyObject(data))
   {
      alert("data empty");
   }
   else
   {
      var Menu_uri = "http://www.XXXXXX.XXX/WebService/api/controllername/Menu_mehtod/465";
      
      alert("Till this alert, code is working");
                          
      $.getJSON(Menu_uri, function (menudata) {
          $.each(menudata, function (index, item) 
          {
             alert("Hyperlink:" + item.Hyperlink);
          });
      })
      .done(function () { alert("Inner Success"); })
      .fail(function () { alert("Inner Error"); });
   }
})
.fail(function () { alert("Outer Error"); });




我正在使用visual studio 2015开发我在Cordova的项目。

任何帮助都会得到满足。

3 个答案:

答案 0 :(得分:0)

您的HTML页面中应该已经有一个元标记,类似于:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' 
    data: gap: https://ssl.gstatic.com 'unsafe-eval'; 
    style-src 'self' 'unsafe-inline'; media-src *">

由于没有img-src值,因此默认为&#39; self&#39;但是您要从从外部来源获取的数据加载。所以添加一个像这样的img-src值:

img-src 'self' data:;

请注意包含的冒号。

您可以在这个方便的网站上详细了解内容安全政策:http://content-security-policy.com/

答案 1 :(得分:0)

现在我明白了,为什么它不适合我,因为$ .getJSON()是异步的,我在第一次请求中有重定向代码......

$ .getJSON()是$ .ajax()的简写符号,可以配置为同步。

我在解决这个问题时学到了太多新东西。

感谢您的回复。

答案 2 :(得分:0)

请检查这是网络标签中的输出..

Network Tab