我使用http://www.malsup.com/jquery/form/#ajaxForm來表示我的表單。 我設置了一個表單,通過Ajax將圖像上傳到服務器。一切工作正常,沒有IE9 :)。 我無法從服務器獲取JSON響應,雖然在其他瀏覽器上它可以正常工作。 我試圖在成功函數中放置一些alert(),但它看起來成功函數不是事件加載的。IE9中的jQuery表單插件中沒有JSON響應
我的JS代碼:
$(function() {
$('#upload-image').ajaxForm({
dataType: 'json',
success: processJson
});
function processJson(data) {
var i = 0;
$.each(data, function(key, val) {
$('<li id="image_' + key + '"><input type="checkbox" name="delete_image[' + key + ']" /><img src="' + val + '" alt=""/></li>').hide().appendTo('#images').delay(i).fadeIn('slow');
i += 1000;
});
}
});
和代碼生成PHP JSON響應:
$output = array();
foreach ($files['Filedata'] as $file)
{
$file_arr = $this->_save_image($file);
$image = ORM::factory('image');
$image->filename = $file_arr['filename'];
$image->gallery_id = $gallery_id;
$image->save();
$output[$image->id] = Route::get('uploads')->uri(array('dir' => 'images/120x120', 'file' => $image->filename));
}
$this->request->headers('Content-type','application/json; charset='.Kohana::$charset);
$this->response->body(json_encode($output));
我發現有關類似問題(除去從響應html標籤)一些帖子,但它不幫助我。 有什麼不對?
編輯: IE調試模式告訴我,該訪問被拒絕在與「form.submit();」的行上。在jQuery表單插件庫中。 它似乎是一些與本地主機上運行JavaScript有關的安全拒絕。
嘗試將您的$ this-> request->標題行註釋掉並進行檢查。因爲如果你傳遞的是dataType:json,那麼你不需要從你的php – GBD
中設置json頭,你的表單動作是什麼? – GBD
評論此行並沒有幫助。我的動作直接在表單標籤內設置。 – deem