ajax中的phonegap XML解析器在iOS上出现错误

Posted

技术标签:

【中文标题】ajax中的phonegap XML解析器在iOS上出现错误【英文标题】:phonegap XML parser in ajax geting error on iOS 【发布时间】:2013-12-04 12:45:56 【问题描述】:

包含 jquery-1.8.3.min.js ajax xml 解析工作正常。如果我包括 jquery.mobile-1.3.2.min.js 意味着收到错误“XMLHttpRequest 无法加载http://myurl.com。请求的资源上不存在'Access-Control-Allow-Origin'标头。因此不存在原点'null'允许访问。”

我已经试过了

<script type="text/javascript" src="js/jquery.mobile-1.3.2.min.js"></script>
<script type="text/javascript">
    $(document).ready(function()
      $.support.cors = true;
      $.mobile.allowCrossDomainPages = true;
        $.ajax(
            type: "GET",
            url: "http://myurl.com",
            dataType: "xml",
            success: function(xml) 
                $(xml).find('ad').each(function()
                   var url = $(this).find('url').text();
                   alert(url);
                   var title = $(this).find('title').text();
                   var details = $(this).find('content').text();
                   $("#BlogList").append("<div class='blog_listing'>                                                                     <div class='blog_list_title'><a href='"+$.trim(url)+"' title='"+$.trim(title)+"'>"+$.trim(title)+"</a></div><div class='blog_list_detials'><p>"+$.trim(details)+"</p></div></div>");

                );
            
        );
    );
</script>

没有用

【问题讨论】:

您是否同时使用 jquery 1.8.3 和 jquery mobile 1.3.2?尝试使用 jquery 1.9.1 @jcesar 现在我尝试使用 jquery 1.9.1 它也显示相同的错误。 你从远程服务器加载 index.html 吗?错误:index.html 的域与您发送请求的 url 不同。在服务器上,输入 Access-Control-Allow-Origin = '*' 以允许所有域访问 @Hanh Le 我必须在 .htaccess 中尝试使用 Header set Access-Control-Allow-Origin "*" 但它也显示相同的错误。我需要从 Wordpress 解析 xml 提要。 我不确定,来自 JQM 的问题。你应该检查allowCrossDomainPages 【参考方案1】:

我似乎找不到在您给定的快照中添加的 jquery 文件,如果您添加了它但仍然遇到问题,那么我建议您尝试以下方法并告诉我。

Access-Control-Allow-Origin 错误通常是由于浏览器网络安全权限而出现的。 如果你在 chrome 中运行 ajax 请求,那么我建议你在 chrome 中做 disable-web-security 并尝试一下。

如果您使用的是 MAC,请在终端中输入以下代码并输入:-

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security --allow-file-access-from-files --allow-file-access --user-data-dir=~/chrome-test/ spec/runner.html 

如果您使用的是 Windows,请转到命令提示符并进入 Chrome.exe 所在的文件夹并键入

chrome.exe --disable-web-security

尝试这样做并在终端中运行以下代码后打开的浏览器中运行您的项目,并让我知道它是否有效。

【讨论】:

以上是关于ajax中的phonegap XML解析器在iOS上出现错误的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SAX 解析器在 XML 中添加元素?

使用 DOM 解析器在 Java 中解析具有 2 个默认命名空间的 XML

如何使用基于标签的 XML::Twig 解析器在 Unix 上清理 xml 文件 [关闭]

流式处理和基于树的 XML 解析器在 JAVA 开始时是不是消耗相似数量的内存

iOS PhoneGap 2.3 Config.xml 混淆

基于HttpRunner,解析swagger数据,快速生成接口测试框架