这是我第一次尝试从localhost上传我的工作。我有一个ajax请求提交表单并从服务器获得somre响应。但成功方法是不触发,而错误方法正在触发。虽然它在class ClickListener implements ActionListener
{
protected int countA;
public void actionPerformed(ActionEvent e)
{
count++;
上正常工作但由于某种原因它无法在localhost
上运行。我认为这是ajax请求中的url,虽然在localhost上没问题,但是没有获取文件。这可能是什么原因以及我如何解决这个问题?
我检查了所有与此ajax请求相关的sql.ALl正常工作。
我的域名是:ezphp.tk
我的问题是在网址中附加文件位置就像我做的那样,或者我不得不用http://mydomain/filepath .....
ajax提交:
remote server
verifyanswer.php文件是:
$.ajax('../includes/verifyanswer.php',{
data:{
'answer_body': CKEDITOR.instances.content.getData(),
'userpost_post_id': <?php echo $postid;?>,
'users_user_id': <?php echo $userdata->user_id; ?>
},
type:"POST",
dataType:'json',
success:function(response){
alert('bal');
var obj=response;
alert(obj[0].answer_body);
$('#mainanswer').hide();
$('#answerform').hide();
$('#answerthisquestion').show();
var str="<div class='styleanswer' >"+obj[0]['answer_body']+"</div><div class='customcmntholder'></div><span id='customcomment' class='cmnt' onclick='letmecomment(event);'>Add a Comment...</span><form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post' name='cmntform'> <textarea data-id="+obj[0]['answer_id']+" class='customcmntform' placeholder=' add a comment......' ></textarea></form><hr>";
$('#answerwrapper').append(str);
$('#answerwrapper pre code').each(function(i, block) {
hljs.highlightBlock(block);
});
},
error:function(response){
alert('there are some errors');
}
});
答案 0 :(得分:0)
我认为您的问题是ajax跨域。 您可以通过代码在php文件中设置:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
或参考here来解决它
答案 1 :(得分:0)
在调用ajax函数时,在第一个php页面上尝试以下两种方法之一:
<!-- This is your form -->
<form name="yourForm" id="yourForm" method="post" action="http://yourdomain.com/includes/verifyanswer.php" novalidate >
<input type="submit" />
</form>
这是在表单提交后调用ajax的方法:
$('#yourForm').on('submit',(function(e) {
e.preventDefault();
var formData = $(this).serialize();
$.ajax({
type:'POST',
url: $(this).attr('action'),
dataType: "json",
data:formData,
processData: false,
success:function(data){
alert(data);
},
error: function(data){
alert('there are some errors');
}
});
}));
这是通过自定义函数调用ajax:
function testFunction()
{
var yourparam1 = "abc";
var yourparam2 = "123";
$.ajax({
type: "POST",
url: "http://yourdomain.com/includes/verifyanswer.php",
dataType: "json",
data: {
param1 : yourparam1,
param2 : yourparam1
},
success: function(data) {
alert(data);
},
error: function(data){
alert('there are some errors');
}
});
}
在您获取ajax json数据的php页面上添加此行:
// PHP headers (at the top)
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json");
$output = "Hello world";
echo json_encode($output);
答案 2 :(得分:0)
首先,你需要检查你从ajax请求中得到的确切错误,这是由cors还是别的引起的
更改你的jquery错误函数,如下所示:
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
如果您使用共享主机为您的网站,那么您需要允许您的网站可以使用此来自所有来源访问,有几种方法允许交叉来源:
有关cors enable的更多信息,您可以访问enable-cors.org