我正在使用以下技术构建移动应用程序
**真正的解决方案**
如果您使用的是jQuery 1.8或更高版本,
请记住,.success,.error和.complete不推荐使用.done,.fail和.always for jQuery 1.8或更高版本
请记住将ajax定义放在$(文档).ready()中以确保它在DOM完全准备好后运行
像这样链接回调处理程序:$ .ajax()。done()。fail()。always();
以下是我最终如何处理它,我不介意与任何想在jQuery Mobile,jQuery 1.8或更高版本,PhoneGap,Cordova上使用ajax的人分享它
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="css/jquery.mobile.structure-1.4.4.min.css" />
<script src="js/jquery-2.1.1.min.js"></script>
<script src="js/jquery.mobile-1.4.4.min.js"></script>
</head>
<body>
<form>
<textarea name=userinput id=textarealol> </textarea>
<input type="button" value="Write on the server!" id="mybutton">
</form>
<script>
$mybutton = $("#mybutton");
$textarealol = $("#textarealol");
$( document ).ready(
function( )
{
$hearitbutton.click(
function(e)
{
$.ajax(
{
url : "http://www.yourwebsite.com/yourpage.php",
type : "POST",
data : { comingover : $textarealol.val() },
}
)
.done(
function(e)
{
alert("Successfully Done");
}
)
.fail(
function(e)
{
alert("ERRORNEOUS");
}
)
.always(
function(e)
{
alert("E.N.D. jQ Ajax");
}
);
} ); } ); // End of ready( ) and mybutton().click()
</script> </body> </html>
然后在您的PHP文件中,输入将存储在
中$_POST['comingover']
答案 0 :(得分:0)
记住它是JSONP,它需要回调,所以你需要返回回调函数。
这样的事情应该有效:
<?php
header('Access-Control-Allow-Origin: *');
$file = 'mytextfile.txt';
$datvariable = $_POST['userinput'];
file_put_contents($file, $lala , FILE_APPEND | LOCK_EX); // Nothing wrong with this
$jsonp = false;
// Get the name of the callback function
if (isset($_POST['callback'])) {
$_POST['callback'] = strip_tags($_POST['callback']);
$jsonp = true;
$pre = $_POST['callback'] . '(';
$post = ');';
}
// Replace ** some data if you want to ** with the data you wish to send to the
// callback function.
$json = json_encode( ** some data if you want to ** );
print(($jsonp) ? $pre . $json . $post : $json);
?>
如果您不想使用回调发送任何数据,则只返回不带参数的回调:
// $json = json_encode( ** some data if you want to ** ); // Remove this line.
print(($jsonp) ? $pre . $post : '');