当前位置: 首页 > 面试题库 >

为什么这个jQuery AJAX PUT可以在Chrome中运行但不能在FF中运行

裴卓君
2023-03-14
问题内容

在Chrome浏览器中,它会像应有的那样执行HTTP PUT,但在FireFox 21中却没有。在javascript控制台或后端中没有错误。

这是HTML:

<div id="createTeamModal" class="small reveal-modal">
        <form id="createTeamForm">
            <div class="row"><p id="teamFlavorText" class="lead">Building a new team</p></div>
            <div class="row">
                <div class="small-4 large-4 columns"><label>Team Name:</label></div>
                <div class="small-6 large-6 columns"><input name="teamName" id="teamName" type="text" size="20"/></div>
            </div>
            <div class="row"><p class="lead">Does this team work for a business?</p></div>
            <div class="row">
                <div class="small-4 large-4 columns"><label>Business Size:</label></div>
                <div class="small-6 large-6 columns">
                    <select id="businessSizeSelect" name="businessSizeSelect">
                    <option value="1">Nope, I work alone</option><option value="2">2 to 49</option><option value="3">50 to 99</option><option value="4">100 to 999</option><option value="5">1,000+</option>
                    </select>
                </div>
            </div>
            <div id="businessLocationDiv" class="row" style="display: none; margin-top: 20px;">
                <div class="small-4 large-4 columns"><label>Business Location:</label></div>
                <div class="small-6 large-6 columns">
                    <select id="businessLocationSelect" name="businessLocationSelect">
                    </select>
                </div>
            </div>
            <div id="businessTypeDiv" class="row" style="display: none; margin-top: 20px;">
                <div class="small-4 large-4 columns"><label>Industry:</label></div>
                <div class="small-6 large-6 columns">
                    <select id="businessTypeSelect" name="businessTypeSelect">                      
                    </select>
                </div>
            </div>
            <div class="row" style="margin-top: 20px;">
                <div class="large-offset-10 small-1 large-1 columns">
                    <button id="createTeamButton" class="small button">Create</button>
                </div>
            </div>
        </form>
        <a class="close-reveal-modal">&#215;</a>
    </div>

这是jQuery:

$("#createTeamButton").click(function () {
    var teamObject = new Team();
    teamObject.description = $("#teamName").val();
    teamObject.businessSize = $("#businessSizeSelect").val();
    teamObject.businessType = $("#businessTypeSelect").val();
    teamObject.businessLocation = $("#businessLocationSelect").val();

    $.ajax({
        type: "PUT",
        url: "/ajax/rest/team",
        dataType: "json",
        data: JSON.stringify(teamObject),
        success: function () {
            // Reload the team select box
            loadTeamSelectBox();

            // Pop up the site create modal
            $('#createSiteModal').foundation('reveal', 'open');
        },
        error: ajaxErrorHandler
    });
});

我在Fiddler中观察到了它们,并且正常工作(Chrome)和无效工作(Firefox)之间的区别是HTTP
PUT在Chrome中启动,而在Firefox中不启动。

现在,我知道并不是所有浏览器都可以保证jQuery.ajax PUT。

这些网站重申了PUT可能无法在所有浏览器中运行,但应该在FF中运行。

最后,我用FF21和PUT进行了以下操作

  • http://www.mnot.net/javascript/xmlhttprequest/

我当然可以解决这个问题,但是在我看来这应该可行。我宁愿不要用jerry-rig的东西,而宁愿让jQuery的.ajax正常工作。

其他详细信息: jQuery版本2.0.0 后端是Spring3

[编辑以添加HTML]


问题答案:

这是一个令人失望的答案。单击按钮正在提交表单,即使它不一定要提交。我把onsubmit =“ return false;” 的形式,问题就解决了。



 类似资料:
  • 我正在尝试执行这个代码是pycharm 但我总是犯这个错误 但我可以使用terminal运行相同的代码

  • 我用ReactJS制作了一个网络应用程序。它在本地主机上运行良好。然而,当我部署到Azure时,每次导航到新页面或重新加载页面时,我都会收到404个错误。 我正在使用Browser路由器,我从网上查看中了解到这有时会导致问题,但我还没有找到解决它的方法。 我在 GitHub 中有该应用程序,因此在 Azure 中我链接到存储库。除了由create-react-app生成的代码外,我还有一个web.

  • 我刚刚完成了一个用于解密或encrpyt的AES类,它在windows上运行良好,但无法在linux上运行,出现以下错误: 给定的最终块未正确填充 完整代码如下: 请帮我解决这个问题,否则我的老板会解雇我的,非常感谢。

  • 我在不同的地方对此进行了研究,包括stackoverflow,但我找不到一个对我有帮助的答案。 我使用的是Windows 7,64位,Atom用于64位Windows。我在目录C:\Users\Austin\Documents\Python中安装了Python 3.6.1。当我试图在Atom中运行一个简单的脚本来测试Python时,它说 “python”不被识别为内部或外部命令、可操作程序或批处理

  • 问题内容: 这让我很精神。 我在Google Maps v3中使用了MarkerCluster,它在FF中可以正常工作,但是当我(和客户端)在Chrome或Safari中启动它时,群集就不存在了。 没有错误,只是不能在webkit中工作。 一些注意事项:它来自一些ajax加载的json,并且在jquery中。 该函数负责添加: 干杯! 重申一下,Chrome中没有错误,只是没有显示。 问题答案:

  • 问题内容: 问题 当我的网站位于本地(使用协议)时,该图标图标不会显示在Chrome或Safari中,但可以在Firefox中使用(在Mac上均如此)。但是,当实际托管完全相同的站点时,该图标图标在我尝试过的所有浏览器中都可以正常工作。为什么Webkit浏览器不显示本地图标? 细节 favicon.ico文件与index.html页面位于同一目录中。尽管我尝试了以下几种变体,但我正在使用以下代码: