jQuery ajax 성공 오류
양식을 제출하려고 합니다. 마녀가 이메일을 보냅니다.
제이에스
var that = $(this);
$.ajax({
url: '../wp-content/themes/bsj/php/validate.php',
type: 'post',
context: that,
data: $('#sign-up').serialize(),
cache: false,
success: function(){
alert('success!');
},
error: function(){
alert('error!');
}
});
PHP
/*----------------------------------
Variables
----------------------------------*/
// Personal info
$prefix = $_POST['prefix'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$company = $_POST['company'];
$email = $_POST['email'];
$title = $_POST['title'];
$dept = $_POST['dept'];
// Contact details
$address = $_POST['address'];
$address2 = $_POST['address2'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];
$phone = $_POST['phone'];
$ext = $_POST['ext'];
$fax = $_POST['fax'];
// Job Summary
$job_title = $_POST['job_title'];
$positions = $_POST['positions'];
$hours = $_POST['hours'];
$age = $_POST['age'];
$wage = $_POST['wage'];
$wage_type = $_POST['wage_type'];
$job_description = $_POST['job_description'];
$comments = $_POST['comments'];
/*----------------------------------
Mail Form
----------------------------------*/
$to = 'email@email.com';
$subject = 'Subject';
$headers = 'From: noreply@email.com' . "\r\n" .
'Reply-To: noreply@email.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$message =
'### Personal Information ###' . "\r\n\r\n" .
'Prefix: ' . $prefix . "\r\n" .
'First Name: '. $first_name . "\r\n" .
'Last Name: ' . $last_name . "\r\n" .
'Company: ' . $company . "\r\n" .
'E-Mail: ' . $email . "\r\n" .
'Title: ' . $title . "\r\n" .
'Dept.: ' . $dept . "\r\n\r\n";
$message .=
'### Contact Details ###' . "\r\n\r\n" .
'Address: ' . $address . "\r\n" .
'Address 2: ' . $address2 . "\r\n" .
'City: ' . $city . "\r\n" .
'State: ' . $state . "\r\n" .
'Phone: ' . $phone . "\r\n" .
'Ext.: ' . $ext . "\r\n" .
'Fax: ' . $fax . "\r\n\r\n";
$message .=
'### Job Description ###' . "\r\n\r\n" .
'Job Title: ' . $job_title . "\r\n" .
'Positions: ' . $positions . "\r\n" .
'Hours: ' . $hours . "\r\n" .
'Age: ' . $age . "\r\n" .
'Wage: ' . $wage . ' - ' . $wage_type . "\r\n" .
'Job Description: ' . $job_description . "\r\n" .
'Comments: ' . $comments;
mail($to, $subject, $message, $headers);
설정 중입니다.that
양식을 표시하기 위해 모달 창 플러그인을 사용하고 있기 때문에 이 방법으로 올바른 범위를 얻을 수 있습니다.
가장 큰 문제는 제가 제출을 클릭하면 받은 편지함에 이메일이 잘 들어오지만 항상 오류 기능을 실행하고 성공 기능은 실행하지 않는다는 것입니다.
정말 미치겠어요, 저는 모든 곳에서 운이 없는 답을 찾았습니다.
저는 성공적인 전화를 몇 번 받았지만 지금은 더 이상 작동하지 않고 왜 그런지 모르겠어요.이메일 잘 받고 있어요...
Chrome Developer 도구로 응답 헤더를 확인해보니,200 OK
그래서 그것은 되돌아가고 있습니다.뭐가 문제야?
편집: 글쎄요, 저는 5시간 동안 노력한 끝에 오늘을 포기합니다.저는 내일 다시 와서 다른 것들을 시도할지도 모릅니다.그냥 사용할게요.complete
지금으로서는, 그것이 잘 작동합니다.서버와 관련이 있을 수도 있다고 생각합니다.클라이언트가 IIS를 사용하고 있습니다...
당신은 당신의 것을 제공하지 않았습니다.validate.php
코드가 헷갈리네요.메일이 성공하면 JSON 형식으로 데이터를 전달해야 합니다.이를 위해 json_encode(); PHP 함수를 사용할 수 있습니다.
더하다json_encode
무효의마침내 php
mail($to, $subject, $message, $headers);
echo json_encode(array('success'=>'true'));
JS 코드
success: function(data){
if(data.success == true){
alert('success');
}
효과가 있기를 바랍니다.
response dataType 속성을 직접 설정해 보십시오.
dataType: 'text'
앤 퍼팅
die('');
당신의 php 파일의 끝에.jquery에서 응답을 구문 분석할 수 없으므로 오류 콜백이 발생했습니다.어쨌든 요청이 처리되었는지 확인하기 위해 "complete:" 콜백을 사용할 수 있습니다.
저도 같은 문제가 있었습니다.
textStatus = 'error'
errorThrown = (empty)
xhr.status = 0
그것은 제 문제와 정확히 맞아요.제가 제 컴퓨터에서 HTML 페이지를 로드할 때는 이 문제가 있었지만, 제 웹 서버에서 HTML 페이지를 로드했을 때는 문제가 없었습니다.그리고 다른 도메인에 업로드를 시도했는데 다시 같은 오류가 발생했습니다.도메인 간의 문제인 것 같습니다. (적어도 나의 경우)
저는 또한 그것을 이렇게 부르려고 노력했습니다:
var request = $.ajax({
url: "http://crossdomain.url.net/somefile.php", dataType: "text",
crossDomain: true,
xhrFields: {
withCredentials: true
}
});
하지만 성공하지 못했습니다.
이 게시물을 통해 해결되었습니다. jQuery AJAX 도메인 간
언급URL : https://stackoverflow.com/questions/9059489/jquery-ajax-success-error
'source' 카테고리의 다른 글
추가 방법 후 Jquery click 이벤트가 작동하지 않음 (0) | 2023.08.30 |
---|---|
데이터 프레임 목록을 다중 시트 Excel 스프레드시트에 저장 (0) | 2023.08.30 |
헤더 서명이 잘못되었습니다. Excel 문서에 Apache POI가 있는 IO 예외 (0) | 2023.08.25 |
당신은 아이패드에서 HTML5 비디오를 자동 재생할 수 있습니까? (0) | 2023.08.25 |
스위프트 - 코너 반경 및 드롭 섀도우 문제 (0) | 2023.08.25 |