Ajax发送请求后,IE8自动执行返回Script,覆盖页面

online_onlie 2016-01-07 03:36:55

<script type="text/javascript" src = "js/jquery-1.11.3.min.js" ></script>
<script type="text/javascript" src = "js/jquery.form.js" ></script>
<script language="javascript" type="text/javascript">
function test( id ) {
$( "#__EVENTTARGET" ).val( id );
$( "#__EVENTARGUMENT" ).val( '' );
$( '#form1' ).ajaxForm( options );
}
</script>


<form name="form1" method="post" action="http://intranet.paxar.com.hk/vs015/frm_CheckInNFiles.aspx" id="form1" enctype="multipart/form-data">
<input type="submit" name="btnUpload" value="Upload" onclick="test('btnUpload');" id="btnUpload" style="height:27px;width:314px;z-index: 109;left: 46px; position: absolute; top: 182px">


我执行提交后,后台会返回一段javaScript代码, 我只需要获取到代码, 而不是浏览器直接解析执行返回javaScript. 求解决方法
...全文
250 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
online_onlie 2016-01-12
  • 打赏
  • 举报
回复
引用 7 楼 showbo 的回复:
[quote=引用 6 楼 online_onlie 的回复:] [quote=引用 5 楼 showbo 的回复:] [quote=引用 4 楼 online_onlie 的回复:] [quote=引用 2 楼 showbo 的回复:] 不会自动执行script代码的,你是不是用html方法给某个容器赋值了?这样jquery会自动解析返回的script代码然后执行
你好,我已经在回复中做了更详细的答复,麻烦你看看,帮忙解答好吗? 谢谢你,版主大人[/quote] showResponse回调代码呢?看你截图也不是执行你服务器端返回的js代码,要不应该输出File set check in complete.[/quote] 你好, 回调代码:
function showRequest( formData, jqForm, options ) {
				alert( "showRequest" );
			}
			
			function showResponse( responseText, statusText ) {
				alert( "showResponse" + "_ " + responseText + "_ " + responseText.links[ 1 ] );
			}
我贴上去的那段服务器返回代码是上传成功之后的代码, 其中截图是没有上传成功的, 如果上传成功之后还是还执行到代码的. 不知道是为何?[/quote] 明白了,你用的IE9-浏览器是吧,IE10+才支持h5的FormData,jquery.form会判断如果支持FormData就用这个+ajax上传,不支持就用iframe来模拟的,将表单提交到iframe中,iframe加载script这种代码肯定是执行的,你直接Response.Write输出strJavaScript ,将<>替换为实体<>才行[/quote]非常感谢你的回答,我用的是IE8,看来可能是真的是不支持html5所导致的,我之前事过境迁chrome是可以的.再次感谢
online_onlie 2016-01-11
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:
[quote=引用 4 楼 online_onlie 的回复:] [quote=引用 2 楼 showbo 的回复:] 不会自动执行script代码的,你是不是用html方法给某个容器赋值了?这样jquery会自动解析返回的script代码然后执行
你好,我已经在回复中做了更详细的答复,麻烦你看看,帮忙解答好吗? 谢谢你,版主大人[/quote] showResponse回调代码呢?看你截图也不是执行你服务器端返回的js代码,要不应该输出File set check in complete.[/quote] 你好, 回调代码:
function showRequest( formData, jqForm, options ) {
				alert( "showRequest" );
			}
			
			function showResponse( responseText, statusText ) {
				alert( "showResponse" + "_ " + responseText + "_ " + responseText.links[ 1 ] );
			}
我贴上去的那段服务器返回代码是上传成功之后的代码, 其中截图是没有上传成功的, 如果上传成功之后还是还执行到代码的. 不知道是为何?
  • 打赏
  • 举报
回复
引用 6 楼 online_onlie 的回复:
[quote=引用 5 楼 showbo 的回复:] [quote=引用 4 楼 online_onlie 的回复:] [quote=引用 2 楼 showbo 的回复:] 不会自动执行script代码的,你是不是用html方法给某个容器赋值了?这样jquery会自动解析返回的script代码然后执行
你好,我已经在回复中做了更详细的答复,麻烦你看看,帮忙解答好吗? 谢谢你,版主大人[/quote] showResponse回调代码呢?看你截图也不是执行你服务器端返回的js代码,要不应该输出File set check in complete.[/quote] 你好, 回调代码:
function showRequest( formData, jqForm, options ) {
				alert( "showRequest" );
			}
			
			function showResponse( responseText, statusText ) {
				alert( "showResponse" + "_ " + responseText + "_ " + responseText.links[ 1 ] );
			}
我贴上去的那段服务器返回代码是上传成功之后的代码, 其中截图是没有上传成功的, 如果上传成功之后还是还执行到代码的. 不知道是为何?[/quote] 明白了,你用的IE9-浏览器是吧,IE10+才支持h5的FormData,jquery.form会判断如果支持FormData就用这个+ajax上传,不支持就用iframe来模拟的,将表单提交到iframe中,iframe加载script这种代码肯定是执行的,你直接Response.Write输出strJavaScript ,将<>替换为实体<>才行
  • 打赏
  • 举报
回复
引用 4 楼 online_onlie 的回复:
[quote=引用 2 楼 showbo 的回复:] 不会自动执行script代码的,你是不是用html方法给某个容器赋值了?这样jquery会自动解析返回的script代码然后执行
你好,我已经在回复中做了更详细的答复,麻烦你看看,帮忙解答好吗? 谢谢你,版主大人[/quote] showResponse回调代码呢?看你截图也不是执行你服务器端返回的js代码,要不应该输出File set check in complete.
online_onlie 2016-01-08
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
不会自动执行script代码的,你是不是用html方法给某个容器赋值了?这样jquery会自动解析返回的script代码然后执行
你好,我已经在回复中做了更详细的答复,麻烦你看看,帮忙解答好吗? 谢谢你,版主大人
online_onlie 2016-01-08
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
用ajaxSubmit dataType: 'script',


你好, 我使用了这个方式还是一样的结果.

前端代码:
var options = {    
//target: "", // target element(s) to be updated with server response
beforeSubmit: showRequest, // pre-submit callback
success: showResponse, // post-submit callback

// other available options:
//url: url // override for form's 'action' attribute
//type: 'post', // 'get' or 'post', override for form's 'method' attribute
dataType: 'script' // 'xml', 'script', or 'json' (expected server response type)
//clearForm: true // clear all form fields after successful submit
//resetForm: true // reset the form after successful submit

// $.ajax options can be used here too, for example:
//timeout: 3000
};


下面是我后台返回代码:
//////////////////////////////
//Client javascript and show message
//////////////////////////////
strJavaScript = "<script language='javascript'>" +
"UploadButtonEnable(1);" +
"alert('File set check in complete.');" +
"this.close();" +
"</script>";
ClientScript.RegisterStartupScript(this.GetType(), "Script_UploadAlert", strJavaScript);


执行后结果:
  • 打赏
  • 举报
回复
不会自动执行script代码的,你是不是用html方法给某个容器赋值了?这样jquery会自动解析返回的script代码然后执行
slwsss 2016-01-07
  • 打赏
  • 举报
回复
用ajaxSubmit dataType: 'script',

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧