Rumah > Soal Jawab > teks badan
Saya menghadapi masalah semasa pembangunan hari ini
Iaitu, penghujung semasa terus href antara muka (terdapat kod ubah hala dalam antara muka)
Dengan cara ini anda boleh mengubah hala secara terus
Tetapi apabila bahagian hadapan menggunakan ajax untuk meminta antara muka ini, ia tidak akan diubah hala
Kenapa? Tolong jelaskan prinsipnya
ringa_lee2017-05-16 13:01:05
ajax sendiri tidak boleh melaksanakan pengalihan.
Anda boleh mengubah suai bahagian belakang untuk mengembalikan hasil dan laksanakan lompatan halaman selepas menilainya dalam fungsi panggil balik bahagian hadapan.
Idea asasnya ialah bahagian belakang menentukan sama ada pengepala permintaan mengandungi maklumat ajax
sebagai contohisAjax = request.getHeader("x-requested-with").equals("XMLHttpRequest");
, dan kemudian melakukan operasi yang berbeza mengikut permintaan yang berbeza, seperti melaksanakan terus lompatan atau mengembalikan maklumat url lompatan dan lompatan hujung hadapan.
ringa_lee2017-05-16 13:01:05
Pemahaman saya:
Yang pertama ialah lompatan alamat, dan yang kedua ialah antara muka untuk mengakses pelayan yang tidak segar semula. Bagaimanakah boleh ada pengalihan apabila anda hanya mengakses antara muka tanpa membuat lompatan halaman digunakan tanpa menyegarkan?
Pastikan untuk melompat ke sisi pelanggan Permintaan Ajax daripada pelayar yang berbeza tidak akan menerima kod status 3xx.
天蓬老师2017-05-16 13:01:05
Ajax membuat permintaan tak segerak. Anda perlu menentukan kod status dan melakukan operasi yang sepadan.
我想大声告诉你2017-05-16 13:01:05
Secara amnya, keputusan dikembalikan berdasarkan bahagian belakang dan kemudian js melompat
天蓬老师2017-05-16 13:01:05
ajax boleh berfungsi seperti biasa dalam status 301,
tetapi premisnya ialah dasar asal yang sama perlu dipatuhi!
Jika anda mempunyai keperluan ini, anda boleh membenarkan laluan nginx proksi ke URL yang sepadan
我想大声告诉你2017-05-16 13:01:05
ajax pada asalnya hanya berinteraksi dengan pelayan untuk data tanpa menyegarkan halaman (anda perlu memahami maksud interaksi data, dengan kata lain, pelanggan hanya menerima output kandungan oleh indeks/indeks/api bahagian pelayan). Kod js dan arahan php yang terkandung di dalamnya tidak boleh dilaksanakan
Jadi jika anda ingin mengubah hala, ia mesti dikendalikan oleh bahagian hadapan Berikut adalah kaedah pengendalian yang betul:
$.ajax({
url : "/index/index/api",
type : "post",
dataType : "json",
data: param,
success : function(data) {
window.location.href = '/index/index';
},
error : function() {
//假如系統接收json以外格式數據會執行該方法
}
});