向php发送ajax请求失败

向php发送ajax请求失败,php,ajax,string,cordova,variables,Php,Ajax,String,Cordova,Variables,我通过ajax请求向php文件发送一个字符串,该文件对字符串进行编码。这样,在调试器控制台中,我接收到完整的编码字符串 我想将编码的字符串与另一个变量组合起来,但它不起作用。它给了我500个服务器错误。我尝试了不同的解决方案,但都不起作用 $(document).ready( function() { $("#paybutton").click(function() { var p

我通过ajax请求向php文件发送一个字符串,该文件对字符串进行编码。这样,在调试器控制台中,我接收到完整的编码字符串

我想将编码的字符串与另一个变量组合起来,但它不起作用。它给了我500个服务器错误。我尝试了不同的解决方案,但都不起作用

$(document).ready( function() {
                  $("#paybutton").click(function() {
                                        var params = "projectpaymentoption=1111&id=",
                                        usernamepay = window.localStorage.getItem("username"),
                                        paymenturl = params + usernamepay;

                                        $.ajax({
                                               type: 'POST',
                                               url: 'http://www.blabla.de/phone/encode.php',
                                               data: $.param({"paymenturl": paymenturl}),
                                               success: function(result) {
                                               window.open('result','_blank','location=no','closebuttoncaption=Zurück');                                                   
                                               console.log(result);
                                               }
                                               });
                                        });
                  });
这里是我的Encode.php:

<?php

print_r($_POST); // see full contents of the POST
$user = $_POST['paymenturl'];
print PHP_EOL . $user . PHP_EOL; // see full contents of the $user var
$password = "blabla"; 
$salt = "blabla";

function encode($password,$decrypted,$salt){    
$key = hash('SHA256', $salt . $password, true);    
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,  
MCRYPT_MODE_CBC), MCRYPT_RAND);   
if (strlen($iv_base64 = rtrim(base64_encode($iv), '=')) != 22) {  
throw new Exception("Encoding failed!");  
}  
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,   
$decrypted . md5($decrypted), MCRYPT_MODE_CBC, $iv)); 
return urlencode($iv_base64 . $encrypted);  }

$en = encode($password,$user,$salt);

$output = array "http://pay4mobile.com/Payments/Connect/1111/DE?o={$en}";
echo json_encode($output);
?>


我想将$en变量与“”结合起来,并将其返回给打开但不工作的应用浏览器中的phonegap。我做错了什么?

是$output=中的“array”输入错误吗

如果输出应为数组中的单个值,请使用:

$output=数组(“http://pay4mobile.com/Payments/Connect/1111/DE?o={$en}”)

如果没有,请使用:


$output=”http://pay4mobile.com/Payments/Connect/1111/DE?o={$en}”

问题是,任何解决方案都会在输出url中给我前斜杠,因此我无法打开它。我需要在json编码中将前斜杠转换为后斜杠。JSON_UNESCAPED_斜杠不起作用,但我的php版本是最新的。你可以先进行URL编码,然后再进行URL解码$en=urlencode(encode($password,$user,$salt));