这是我用于使用FormData对象发布表单数据的ajax代码。在这里,我试图将带有图像上传的表单数据发布到控制器。
var data1= new FormData();
data1.append("doc_photo", $('#file-doc-photo')[0].files[0]);
data1.append("name", $('#txt-doc-name').val());
data1.append("email", $('#txt-doc-emailid').val());
data1.append("phone", $('#txt-doc-phno').val());
data1.append("country ", $('#ddl-doc-country').val());
$.ajax({
type: "POST",
url: baseUrl + "doctor/ctr_doctor/update_doctor",
data: data1,
cache: false,
dataType: "json",
contentType: false,
processData: false,
success: function (res)
{
alert("Hello");
}
});
控制台输出:
------WebKitFormBoundaryoLvd2A1IOU3cxAPp
Content-Disposition:_form-data;_name Disallowed Key Characters.
我修改了Codeigniters核心输入类以找出错误。
function _clean_input_keys($str)
{
if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
{
//$str will append post var key in error message
exit($str.' Disallowed Key Characters.');
}
// Clean UTF-8 if supported
if (UTF8_ENABLED === TRUE)
{
$str = $this->uni->clean_string($str);
}
return $str;
}
我在配置中启用了XSS过滤器。
我知道它发布的表单键不正确,但为什么这就是我想知道的。