2

我的 Index.html 文件代码如下:

<!DOCTYPE html> 
<html>
<head>
<meta charset="utf-8">
<title>Mindcorpus - Placement</title>
<link href="style.css" rel="stylesheet" type="text/css"/>
<script src="jquery.js" type="text/javascript"></script>
<script src="jquery-mobile.js" type="text/javascript"></script>
<script src="/cordova.js" type="text/javascript"></script>
<script>
$(function()
{
$('#frm').submit(function()
{
    var username = $('#textinput').val();
    var username = $.trim(username);
    var password = $('#passwordinput').val();
    var password = $.trim(password);
    if(username=='')
    {
        $('.error').html('Please enter username');
        return false;
    }
    else if(password =='')
    {
        $('.error').html('Please enter password');
        return false;
    }
    else
    {
        var user = $('[name=username]').val();
        var pass = $('[name=password]').val();
        $.ajax({
        type: 'POST',
        url: 'http://localhost/mc-new/admin/mobile1/process.php',
        data: { username: user, password: pass},       
        success: function(data){
            alert(data.success);
        },
        error: function(){
            alert('error!');
        }
    });
 return false;
    }
});
});
</script>
</head> 
<body> 
<div data-role="page" id="page">
<div data-role="header">
    <h1><img src="images/logo.png" /></h1>
</div>
<div data-role="content">
    <div class="error"></div>
    <form action="" method="post" id="frm">
      <div data-role="fieldcontain">
        <input type="text" name="username" placeholder="Username" id="textinput" value=""  />
    </div>
      <div data-role="fieldcontain">
        <input type="password" name="password" placeholder="******" id="passwordinput" value=""       />
    </div>
      <button data-icon="arrow-r" type="submit">Submit</button>
    </form>
</div>
<div data-role="footer">
    <h4 style="font-weight:normal">Powered By: Mind Processors</h4>
</div>
 </div>
 </body>
</html>

我的 process.php 文件是:

<?php
if(isset($_POST['username']) || isset($_POST['password'])) 
{
    $data['success'] = 'Done';
    echo json_encode($data);
}
?>

当我在浏览器上使用 localhost 时,此功能正常工作。但是,当我使用 Dreamweaver 并构建和模拟此站点时。它总是警告错误。Ajax 在模拟器中不起作用。请求未传递到处理文件。请帮我解决这个问题。

4

1 回答 1

0

您需要在 ajax 中指定预期的返回数据类型是JSON,并且还必须启用跨域。

试试下面的ajax代码,

$.ajax({
    type: 'POST',
    url: 'http://localhost/mc-new/admin/mobile1/process.php',
    crossDomain: true,
    data: { username: user, password: pass},
    dataType: 'json',
    success: function(data){
        alert(data.success);
    },
    error: function(){
        alert('error!');
}

并在您的 php 文件中添加以下内容,

<?php

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Max-Age: 1000');
header('Content-Type: application/json');

if(isset($_POST['username']) || isset($_POST['password'])) 
{
    $data['success'] = 'Done';
    echo json_encode($data);
}
?>

希望这对遇到这个问题的人有所帮助,寻找答案。

于 2015-04-20T04:52:59.667 回答