Cordova - jquery ajax 发布到服务器上的 php

Posted

技术标签:

【中文标题】Cordova - jquery ajax 发布到服务器上的 php【英文标题】:Cordova - jquery ajax post to php on server 【发布时间】:2017-09-09 12:05:07 【问题描述】:

我想创建一个基于令牌的系统,我想将输入字段的值推送到我的服务器端 php 文件以将其插入到我的数据库中。

科尔多瓦 html

<input type="text" class="valueToken" name="usertoken" >
<button class="postToken">PostToken</button>

科尔多瓦 js:

$('.postToken').click(function()
  console.log($('.valueToken').val());
  var tokenValue = $('.valueToken').val();

$.ajax(
    type: "POST",
    url: "http://domainName.com/fysioWebapp/php/get_token.php",
    data:  'dataString': tokenValue ,
    cache: false,
    success: function()
        alert("Order Submitted");
    
);

);

这是我的服务器端 php:

<?php
include("connect.php");

$stringData = $_POST['tokenValue']; 
echo $stringData

$insertToken = "INSERT INTO User_Token VALUES ('$stringData')";
$tokenresult = mysqli_query($conn, $sql);

 if($tokenresult)
    echo "Successful";
else 
        echo("Error description: " . mysqli_error($conn));

?>

但它没有将数据发布到我的 get_token.php 文件我在这里缺少什么?

这是科尔多瓦方面的错误:POST http://domainName.com/fysioWebapp/php/get_token.php 500 (Internal Server Error)

【问题讨论】:

奇怪的东西...没有表格?为什么 input 的名称为 usertoken 而您不尝试使用该 $var ?加上您将获得的 $vars 是 usertoken @OldPadawan 是的,不要介意 html 中的名称。但是我不尝试使用 $var insteas of html 值是什么意思? 写作时出错,抱歉:/ 所以我编辑了。您通过 Ajax 传递的数据是 usertokenthough 所以在ajax数据中使用输入的名称而不是get.val():? 请看答案 【参考方案1】:

编辑:

如果您的 php 代码出现语法错误等致命错误并且错误显示已关闭,则会显示 500 Internal Server Error。

在你的 php 文件中尝试添加:

ini_set('display_errors', 1);

在.htaccess文件中添加:

php_flag display_errors 1

在查看如何在 PHP 中调试 500 个错误时找到了类似的答案。

原文:

试试这个代码。

JS

$('.postToken').click(function()
   console.log($('.valueToken').val());
   var tokenValue = $('.valueToken').val();

   $.ajax(
       type: "POST",
       url:  "http://domainName.com/fysioWebapp/php/get_token.php",
       data:  dataString: tokenValue ,
       cache: false,
       success: function()
          alert("Order Submitted");
          
   );
);

PHP

<?php
include("connect.php");

$stringData = $_POST['dataString']; 

echo $stringData

$insertToken = "INSERT INTO User_Token VALUES ('$stringData')";
$tokenresult = mysqli_query($conn, $insertToken);

if($tokenresult)
    echo "Successful";
else 
    echo "Error description: " .  (mysqli_error($conn));

?>

【讨论】:

马上试试这个 cordova 应用程序中的相同错误:` jquery.min.js:4 POST DomainName.com/fysioWebapp/php/get_token.php 500(内部服务器错误)` 该网页不存在。如果我将 URL 复制到浏览器中,它会将我带到 domainname.com 并说页面不存在。我怀疑你对此也有错误。也会用这个更新我的答案。 因为域名 = sylvanreinieren 哦,顺便说一句 $tokenresult = mysqli_query($conn, $insertToken)【参考方案2】:

我已经输入了一些几乎与你相同的名称/值,但我对 Ajax 有一点不同,因为我习惯这样做......你必须适应你的需要 :) 编辑:您没有在 get_token.php 中获得正确的 $vars,因为使用了错误的名称。

<script type="text/javascript">

$(document).ready(function()

$("#submit").click(function(e)
   e.preventDefault();

   console.log($('.valueToken').val());
   var tokenValue = $('.valueToken').val();

    $.ajax(
        method: "POST",
        url: "get_token.php",
        data: "token="+tokenValue,
        success: function(html) alert(html); 
    );
  );
);
</script>

<form action="#" id="form" method="post">
<input type="text" class="valueToken" name="usertoken" >
<input type="submit" class="postToken" id="submit" value="PostToken" />
</form>

/-- get_token.php --/

<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

$token = $_POST['token'];

echo"[ $token ]";

?>

【讨论】:

我会收到这个错误:Notice: Undefined index: token in /php/get_token.php on line 21 @Sreinieren:你修改了什么吗?添加一些东西?只是选择我的代码的一部分进入你的?因为它确实有效:) 不,只是准确地复制了您的代码,但我将帖子从科尔多瓦应用程序发布到网络服务器上的 php。 @Sreinieren : on line 21我有 10 线代码怎么可能? 在移动应用程序中没有错误,它会提醒消息值。但是当我使用特定的 get_token.php 访问网站时,我会收到该错误..

以上是关于Cordova - jquery ajax 发布到服务器上的 php的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Ajax在cordova iOS应用程序上发送之前成功

使用 Cordova 10 的应用内 AJAX 无法在 iOS 中运行

升级到 Cordova 5.0 + cordova-android@4.0 后 Ajax 请求失败

Phonegap / Cordova:jQuery 发布到外部服务器不起作用

从 JQuery Mobile 到 PhoneGap / Cordova

Cordova - jquery 移动 img 路径