شعبة عدم الحصول على يسكنها طلب اياكس
-
24-12-2019 - |
سؤال
أحاول إجراء مكالمة أجاكس مع مسج ، يبدو أن العمل ، ولكن لا أستطيع الحصول عليه لملء شعبة النتيجة.
هيريس رمز شبيبة:
<script>
$(document).ready(function(){
$(document).on('change', '#flip-1', function(){
var datastring = $("#some-form").serialize();
$.ajax
({
type: "POST",
url: "test.php",
data: datastring,
dataType: 'html',
complete: function(data) {
$('#results').html (data);
}
});
});
});
</script>
<form id="some-form">
<label for="flip-1">Flip toggle switch:</label>
<select id="flip-1" name="flip-1" data-role="flipswitch">
<option value="off">Off</option>
<option value="on">On</option>
</select>
</form>
<div id="results">Loading users...</div>
وهنا هو رمز فب:
<?php
if ($_POST['flip-1'] == 'on') {
echo 'oh is on!';
} elseif ($_POST['flip-1'] == 'off') {
echo 'no, its not on';
}
?>
هذا ما يقوله مصحح أخطاء الكروم "فحص العنصر" حول الرؤوس:
Request URL:http://localhost/smart_home/test.php
Request Method:POST
Status Code:200 OK
Request Headers
POST /smart_home/test.php HTTP/1.1
Host: localhost
Connection: keep-alive
Content-Length: 9
Accept: text/html, */*; q=0.01
Origin: http://localhost
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://localhost/smart_home/index.php
Accept-Encoding: gzip,deflate,sdch
Accept-Language: sv-SE,sv;q=0.8,en-US;q=0.6,en;q=0.4
Form Data
flip-1=on
Response Headers
HTTP/1.1 200 OK
Date: Thu, 27 Feb 2014 20:58:08 GMT
Server: Apache/2.4.7 (Win32) OpenSSL/1.0.1e PHP/5.5.6
X-Powered-By: PHP/5.5.6
Content-Length: 20
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Content-Type: text/html
وهذا ما تقوله علامة تبويب الاستجابة:عندما يتغير الزر إلى وضع التشغيل:
oh is on!
عند التغيير إلى"إيقاف"
no, its not on
هل لدى أي شخص أي أفكار?
شكراً!
المحلول
ال complete
لا يتلقى رد الاتصال بيانات الاستجابة مباشرة (المعلمة الأولى هي أ jqXHR
كائن).من الأسهل عموما استخدام success
أو .done()
الاستدعاءات بدلا من ذلك:
$.ajax({
type: "POST",
url: "test.php",
data: datastring,
dataType: 'html',
success: function (data) {
$('#results').html(data);
}
});
أو
$.ajax({
type: "POST",
url: "test.php",
data: datastring,
dataType: 'html'
}).done(function (data) {
$('#results').html(data);
});
لا تنتمي إلى StackOverflow