我正试图通过ajax保存社交媒体网址。这是表格的一部分:
<div class="row">
<div class="col-sm-4">
<label form="campana_fb">Facebook</label>
<input type="text" id="campana_fb" name="campana_fb" class="form-control">
</div>
<div class="col-sm-4">
<label form="campana_tw">Twitter</label>
<input type="text" id="campana_tw" name="campana_tw" class="form-control">
</div>
<div class="col-sm-4">
<label form="campana_in">Instagram</label>
<input type="text" id="campana_in" name="campana_in" class="form-control">
</div>
</div>
ajax代码
$.ajax({
type : "POST",
url : $("#formulario").attr('action'),
dataType : 'json',
data : {
campana_descripcion: campana_descripcion,
campana_nombre: $("#campana_nombre").val(),
camapana_meta: $("#camapana_meta").val(),
campana_id: $("#campana_id").val(),
cuenta_1: $("#cuenta_1").val(),
banco_1: $("#banco_1").val(),
cuenta_2: $("#cuenta_2").val(),
banco_2: $("#banco_2").val(),
campana_fb: encodeURI($("#campana_fb").val()),
campana_tw: encodeURI($("#campana_tw").val()),
campana_in: encodeURI($("#campana_in").val()),
},
success : function(respuesta){
$.unblockUI();
if(respuesta.estado){
alerta(respuesta.mensaje, 'success');
CKEDITOR.instances.campana_descripcion.setData("");
}
else{
alerta(respuesta.mensaje, 'error');
}
},
error: function(error){
$.unblockUI();
alerta(error.responseText, 'error');
}
});
正如您所看到我尝试使用encodeURI
但仍无法正常工作,只有在我输入Urls时仍然会获得Request Method:POST Status Code:403 Forbidden
,否则数据会成功保存。
我在构造函数
中添加了标题class Campana extends CI_Controller
{
public function __construct()
{
parent::__construct();
...
header('Access-Control-Allow-Origin: *');
header('Access-Control-Expose-Headers: Access-Control-Allow-Origin');
}
仅当我在输入和生产时输入网址时才会出现禁止状态,在本地我没有任何问题。
答案 0 :(得分:0)
Hi Laviku用encodeURIComponent替换encodeURI 参考:http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp
对不起,我无法评论不够的积分:)
虽然这并没有回答为什么encodeURI不起作用的问题,你是否尝试过像这样序列化表格:
var form = $("#formulario");
$.ajax({
type : "POST",
url : form.attr('action'),
dataType : 'json',
data : form.serialize() + "&campana_descripcion=" + campana_descripcion,
success : function(respuesta){
$.unblockUI();
if(respuesta.estado){
alerta(respuesta.mensaje, 'success');
CKEDITOR.instances.campana_descripcion.setData("");
}
else{
alerta(respuesta.mensaje, 'error');
}
},
error: function(error){
$.unblockUI();
alerta(error.responseText, 'error');
}
});
答案 1 :(得分:0)
在ajax中你提到数据类型是json但是这里只传递值,所以删除它
$.ajax({
type : "POST",
url : $("#formulario").attr('action'),
data : {
campana_descripcion: campana_descripcion,
campana_nombre: $("#campana_nombre").val(),
camapana_meta: $("#camapana_meta").val(),
campana_id: $("#campana_id").val(),
cuenta_1: $("#cuenta_1").val(),
banco_1: $("#banco_1").val(),
cuenta_2: $("#cuenta_2").val(),
banco_2: $("#banco_2").val(),
campana_fb: encodeURI($("#campana_fb").val()),
campana_tw: encodeURI($("#campana_tw").val()),
campana_in: encodeURI($("#campana_in").val()),
},
success : function(respuesta){
$.unblockUI();
if(respuesta.estado){
alerta(respuesta.mensaje, 'success');
CKEDITOR.instances.campana_descripcion.setData("");
}
else{
alerta(respuesta.mensaje, 'error');
}
},
error: function(error){
$.unblockUI();
alerta(error.responseText, 'error');
}
});