如果URL包含阿拉伯字符,则Ajax在IE中不起作用

时间:2014-05-10 14:25:25

标签: jquery ajax json internet-explorer

在我的Blogger网站中,我从JSON Feed中加载帖子,JSON链接如下所示。

    http://technopress-demo.blogspot.com/feeds/posts/default/-/LABEL NAME?alt=json-in-script&max-results=5

这是我用来从上面的网址获取帖子的代码。

    $.ajax({url:""+window.location.protocol+"//"+window.location.host
    +"/feeds/posts/default/-/"+LABEL NAME
    +"?alt=json-in-script&max-results=5",
    type:'get',dataType:"jsonp",success:function(data){}

问题在于,当我更改“标签名称”时有一个阿拉伯标签,帖子没有加载。我用英文标签测试它并且工作正常,但我对阿拉伯语有问题。我试过这个来解码网址,但它没有用。

    $.ajax({url:""+window.location.protocol+"//"+window.location.host
    +"/feeds/posts/default/-/"+encodeURIComponent(LABEL NAME)
    +"?alt=json-in-script&max-results=5",
    type:'get',dataType:"jsonp",success:function(data){}

这是问题的live demo

2 个答案:

答案 0 :(得分:1)

IE在没有正确编码的URL中存在问题,它也存在包含未编码字符的简单<a href的问题。

LABEL%20NAME代替LABEL NAME应该有用。

使用JSONP,jQuery会生成一个<script src="http://technopress-demo.blogspot.com/feeds/posts/default/-/LABEL NAME?alt=json-in-script&max-results=5">,其中包含未编码的char。

使用引号代替encodeURIComponent(LABEL NAME)

encodeURIComponent("LABEL NAME")

重要提示:保存文件 UTF-8已编码。

enter image description here (来自blog.flow.info的照片)

适用于IE的示例(从Firefox + Firebug复制):

enter image description here

答案 1 :(得分:0)

在您的现场演示中,删除

.shortext {
    text-indent: -9999px;
}

从css中我觉得它在IE中看起来不错。 ID =&#34;最近&#34;和class =&#34;最近的短文&#34;似乎在FF中有不同的标记。