嘿,我的 ci3 應用程式中有一個如下所示的 ajax 函式:
$("#login").on('click', function() {
$.ajax({
url: '@Url.Action("login", "login")',
type: 'POST',
data: $('#quickForm').serialize(),
dataType: 'JSON',
success: function(data) {
if (data.status) {
toastr.success('Login Berhasil!');
var url = '<?php echo base_url('dashboard') ?>';
window.location = url;
} else if (data.error) {
toastr.error(
data.pesan
);
} else {
for (var i = 0; i < data.inputerror.length; i ) {
$('[name="' data.inputerror[i] '"]').addClass('is-invalid');
$('[name="' data.inputerror[i] '"]').closest('.kosong').append('<span></span>');
$('[name="' data.inputerror[i] '"]').next().next().text(data.error_string[i]).addClass('invalid-feedback');
}
}
}
});
});
當我從 Visual Studio 運行應用程式時,此應用程式完美運行,但是當我將其部署到 IIS 時,我的 ajax 功能無法正常作業,并出現錯誤:
我嘗試了 URL
url: '../myController/myFunction'
或
url: '<?php echo base_url('login/login') ?>'
然后它仍然相同,也無法在本地級別作業
這是我的控制器功能
function login()
{
$this->_validate();
//cek username database
$username = anti_injection($this->input->post('username'));
if ($this->Mod_login->check_db($username)->num_rows() == 1) {
$db = $this->Mod_login->check_db($username)->row();
$apl = $this->Mod_login->Aplikasi()->row();
if (hash_verified(anti_injection($this->input->post('password')), $db->password)) {
//cek username dan password yg ada di database
$userdata = array(
'id_user' => $db->id_user,
'username' => ucfirst($db->username),
'full_name' => ucfirst($db->full_name),
'password' => $db->password,
'id_level' => $db->id_level,
'aplikasi' => $apl->nama_aplikasi,
'title' => $apl->title,
'logo' => $apl->logo,
'nama_owner' => $apl->nama_owner,
'logged_in' => TRUE
);
$this->session->set_userdata($userdata);
$data['status'] = TRUE;
echo json_encode($data);
} else {
$data['pesan'] = "Username atau Password Salah!";
$data['error'] = TRUE;
echo json_encode($data);
}
} else {
$data['pesan'] = "Username atau Password belum terdaftar!";
$data['error'] = TRUE;
echo json_encode($data);
}
}
這是我的 base_url 配置:
$config['base_url'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
$config['base_url'] .= "://".$_SERVER['HTTP_HOST'];
$config['base_url'] .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
我必須改變我的配置嗎?
uj5u.com熱心網友回復:
這很有趣,但問題是我無法使用我的 .htacces 并且必須將其更改為 web.config 才能使其正常作業,這是我從另一篇文章中獲得的幫助我的代碼
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
<asp scriptErrorSentToBrowser="true"/>
<rewrite>
<rules>
<rule name="RuleRemoveIndex" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" appendQueryString="true"/>
</rule>
</rules>
</rewrite>
</system.webServer>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true"/>
</system.web>
</configuration>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/391535.html
標籤:php 阿贾克斯 网址 信息系统 codeigniter-3
