IE 使 Jquery.html 失败,权限被拒绝

Posted

技术标签:

【中文标题】IE 使 Jquery.html 失败,权限被拒绝【英文标题】:IE fails Jquery.html with Permission Denied 【发布时间】:2012-06-28 07:41:22 【问题描述】:

我有一个在 Firefox 中运行良好的 ajax 调用,但在 jquery.min.js 文件中出现权限被拒绝错误。我不知道出了什么问题,或者如何解决它。这是我的帖子:

(发布前声明的所有内容)

$.ajax(
    
        type: "POST",
        url: "../ajaxURLs/SearchRequests.aspx?requestID=" + requestID + "&state=" + state + "&status=" + status + "&queue=" + queue + "&oem=" + oem +
        "&rayMatNumber=" + rayMatNumber + "&mfgPartNumber=" + mfgPartNumber + "&program=" + program + "&po=" + po + "&pr=" + pr +
        "&businessUnit=" + businessUnit + "&site=" + site + "&buyer=" + buyer + "&requisitioner=" + requisitioner + "&ce=" + ce + "&rea=" + rea + "&pqe=" + pqe +
        "&startDate=" + startDate + "&endDate=" + endDate,
        cache: false,
        success: function (data) 
            $("#searchResults").html(data);
            sorttable.makeSortable(document.getElementById("SearchResults"));
            $("#MainContent_excelDiv").show();
        
    );

有什么想法吗?如果我将 map 直接带到我的 SearchRequests.aspx 并传递参数,那么它在 Firefox 和 IE 中都可以正常工作,只有通过 ajax 完成。

是的,我使用了 f12。错误是“Permission Denied”jquery.min.js,第 9 行字符 2805。我使用的是 jquery 版本 1.7.2。

如果我删除将 searchResults div 设置为数据,并添加一个警报以显示数据,它会完成该操作并在警报中包含正确的信息。 Fiddler 显示正在生成的正确 html,Firefox 工作正常,它只是 IE。其他 ajax 帖子在 IE 中也可以正常工作。

【问题讨论】:

你试过调试吗? IE 具有带有 min-script-formatter 的调试器 (F12),因此推断错误应该不会太难。对于问题本身,至少提供确切的错误,以及它发生的位置。 首先,如果你要使用 POST,你不应该在查询字符串中传递你的数据;这就是data 选项的用途。其次,您可以逐字发布错误消息吗? @marteljn,将其发布为答案 - 我敢打赌“POST”正是 OP 失败的原因。 @shawleigh17,请检查您是否同意我对您问题的编辑(标题更改) 【参考方案1】:

尝试将您的 typePOST 切换到 GET。您正在进行搜索,因此无论如何都是合适的。这可以解释为什么它在所描述的场景中起作用,而不是在您的 AJAX 请求中起作用。

POST 只能在您在服务器端修改数据时使用,而GET 用于只读数据检索。

编辑

$("#searchResults").html(data); 替换为document.getElementById("searchResults").innerHTML = data; 在那个JQuery 语句中发生了一些奇怪的事情,看看在那个实例中不使用JQuery 是否会起作用。如果它显示在警报中,它也应该在该上下文中工作。

【讨论】:

您的所有资源是否都来自同一个域(甚至是子域)、协议 (http/https) 和端口?这听起来可能是一个跨域/同源策略问题。 +1 因为这是上帝根据原始问题的猜测。 @shawleigh17,所以您的实际错误是 $("#searchResults").html(data); 由于 data 的值而失败(与 ajax 查询无关),对吗? 另一个问题是你是碰巧处理框架还是 iframe?我正在尝试找出您可能会收到权限被拒绝错误的原因。 尝试添加 "dataType" : "html" 或您希望返回的任何类型作为巡回 ajax 选项。 $("#searchResults").html(data); 替换为document.getElementById("searchResults").innerHTML = 数据;该 JQuery 语句中发生了一些奇怪的事情,看看在该实例中不使用 JQuery 是否会起作用。如果它显示在警报中,它也应该在该上下文中工作。

以上是关于IE 使 Jquery.html 失败,权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

IE9 ajax保存权限被拒绝

SCRIPT70:在 IE 中访问 iFrame 的权限被拒绝

使用 Jquery 在 IE 8 和 7 中“权限被拒绝”

IE8 Google 可视化权限被拒绝

jquery 代码显示权限被 IE Edge 和 iframe 拒绝

代码签名框架失败,出现“权限被拒绝”错误