ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – jquery mobile破坏了我的POST

2019-08-31 18:29:34  阅读:174  来源: 互联网

标签:php post jquery-mobile


我有一个包含HEAD部分和BODY部分的HTML文件(index.html).在BODy部分,我有一个表单,其中一个POST动作指向一个php文件.

如果我添加到HEAD部分jQueryMobile的CDN …然后POST停止工作.这怎么可能,以及如何避免这种情况?

所以我的头像这样:

<head>
    <title>My Mobile App</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1 maximum-scale=1" />
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css">
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <link rel="apple-touch-icon" href="images/icon57.png" />
    <link rel="apple-touch-icon" sizes="72x72" href="images/icon72.png" />
    <link rel="apple-touch-icon" sizes="114x114" href="images/icon114.png" />
    <link rel="apple-touch-startup-image" href="images/icon320.png" />
    <link rel="apple-touch-startup-image" sizes="768x1004" href="images/icon320.png" />
</head>

** if I comment the jquery.mobile script line the POST works **

POST的BODY如下所示:

<body>
    <div data-role="page" id="index">
                <header data-role="header" data-position="fixed">
                    <h1>Mobile APP</h1>
                </header>
                <div data-role="content">
                    <b>Login</b>
                    <form method="POST" action="prologin.php">
                        Name: <input type="text" name="name"><br>
                        Password: <input type="password" name="pass"><br>
                        <input type="submit" value="Login" data-inline="true" data-icon="gear">
                    </form>
                </div>

                <footer data-role="footer" data-position="fixed">
                    <h1>bla bla</h1>
                </footer>
    </div>
</body>

现在我的PHP文件prologin.php更复杂,但出于调试目的,我把它减少到:

<?php
echo 'name='.$_POST['name'].' and pass='.$_POST['pass'];
?>

因此,当我使用jQuery.mobile脚本时,单击Login按钮的结果是一个未定义的页面,如果我查看页面源…它是空的,我的意思是它看起来像:

name= and pass=

,所以什么都没发布
如果我用jQuery.mobile注释脚本行,结果会显示它应该是什么,我的意思是:

name=myusername and pass=mypassword

(当然myusername和mypassword是我在输入框中输入的值)
我究竟做错了什么?

这些相同的页面和代码在另一台服务器上工作正常.但现在它不再起作用了.可能有什么不对?原始主机也是CENTOS系统,大部分都是相同的配置.在工作服务器上,我有PHP版本5.3.3,在这一个(不工作)我有PHP版本5.1.6
如何使用jquery mobile影响HTML POST,以免它停止工作?

我的意思是,我该如何解决?

我会尝试更新我的PHP,但在这台服务器上有其他依赖这个版本的应用程序,我会避免更新.

解决方法:

只需将此属性添加到您的表单:

data-ajax="false"

它将阻止jQuery Mobile劫持表单提交逻辑.

您的表单应如下所示:

<form method="POST" action="prologin.php" data-ajax="false">

标签:php,post,jquery-mobile
来源: https://codeday.me/bug/20190831/1777615.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有