我在这里发现了一堆类似的问题,但在阅读并尝试了 3 个小时之后,我发布了自己的问题。对于重复,我深表歉意,但我只是不知道这里发生了什么。
所以我有这个 javascript 函数:
function saveSetting(settingName, settingValue) {
$.post(
appUrl + "Account/SaveSetting",
{ settingName: settingName, settingValue: settingValue },
function (data) {
alert(data.Result);
},
"json"
);
}
我这样调用它:
saveSetting("bookFontSize", fontSize);
其中 fontSize 是“10.5”或类似的东西。
Chrome 会像这样报告帖子标题:
Request URL:http://localhost:1227/Account/SaveSetting?callback=jQuery151022712289774790406_1298625531801
Request Method:POST
Status Code:200 OK
Request Headers
Accept:text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:42
Content-Type:application/x-www-form-urlencoded
Cookie:ASP.NET_SessionId=jwpzp4okerckuh2bhkl2pnwu; .ASPXAUTH=429EEA1CFBFD9D5702011C59F77F18F8DAEEEB412314D608E86289779DF8ED9C80C6E0370B7108D68C44B088C7CB6998F34C59DDCFF8EA9D4A556495F5D40DF21737392DCF5942F73726882BEC354C35599864F751751FD458473FA4541AF25294F7E16DC00AABD4DEC43B321B0ECCBF195FD419C3BC912017275FC478A27F0C12A28D124A663EA5F19E5AEFFB276603
Host:localhost:1227
Origin:http://localhost:1227
Referer:http://localhost:1227/Read/116/1
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13
X-Requested-With:XMLHttpRequest
Query String Parameters
callback:jQuery151022712289774790406_1298625531801
Form Data
settingName:bookFontSize
settingValue:10.5
Response Headers
Cache-Control:private, s-maxage=0
Connection:Close
Content-Length:38
Content-Type:application/json; charset=utf-8
Date:Fri, 25 Feb 2011 09:18:53 GMT
Server:ASP.NET Development Server/10.0.0.0
X-AspNet-Version:4.0.30319
X-AspNetMvc-Version:3.0
这将转到如下所示的 C#/ASP.NET MVC3 操作:
[Authorize]
public JsonResult SaveSetting(string settingName, string settingValue)
{
try
{
repository.SaveSettingForUser(CurrentUser, settingName, settingValue);
}
catch (Exception ex)
{
return Json(new { Result = CurrentUser.IsAdmin() ? "Failed :" + ex.Message : "Failed" });
}
return Json(new { Result = string.Format("Set {0} to {1}.", settingName, settingValue) });
}
根据 chrome,它返回这个:
{"Result":"Set bookFontSize to 10.5."}
对我来说这看起来像是合法的 json。但是,我在 chrome 中收到此错误:
Uncaught SyntaxError: Unexpected token :
还有 IE 7 和 8 中的这个:
An error has occurred in the script on this page.
Line: 67456553
Char: 10
Error: Expected ';'
Code: 0
URL: http://localhost:1227/Read/116/1
我绝对没有 6700 万行代码:)
不管怎样,有人知道这里到底发生了什么吗?我的警报没有运行。 IE 从未实际发出请求,但 Chrome 可以。
我认为这个函数实际上在很久以前就可以与以前版本的 jQuery 一起使用,设置 $.ajaxSettings.traditional = true,但现在它不起作用(jQuery 1.5.1 ) 有或没有该设置。
更新:我让它工作了。我用调试器单步执行了 javascript。出于某种原因,在 jQuery 中调用 .ajax() 期间,它进入了 jquery.validate.js。它为什么要这样做?我包含了该文件,但没有在任何地方使用它。我通过不再引用 jquery.validate.js 来消除错误。但这很糟糕,因为如果我以后想使用验证功能怎么办?
所以我现在的问题是“为什么在我的项目中使用 jquery.validate.js 会搞砸一切?”
更新 2:jquery.validate.js 中存在错误,该错误现已在 github 上该项目的一个分支中得到修复。有关详细信息,请参阅我的答案。我什至没有使用该文件的验证功能,只是将它包含在页面中供以后使用。它妨碍并破坏了东西。 jquery.validate.js 的作者关于修复的注释:“通过使用 jQuery.ajaxSettings 而不是 window.ajaxSettings 修复 jQuery 1.5- 代码(是的,那是愚蠢的)。”
最佳答案
我想通了!!!
这是 jquery.validate.js 中的错误。它在此处重复并记录在案:http://bugs.jquery.com/ticket/8064
作者已在 2011 年 2 月 2 日解决了该问题,但此修复尚未成为插件的正式版本(截至 2011 年 2 月 25 日和 jQuery Validate 1.7)。如果您希望 jQuery 1.5+ JSON 在使用 jquery 验证时工作,您应该下载已修补的验证插件。
https://github.com/jaubourg/jquery-validation/raw/master/jquery.validate.js https://github.com/jaubourg/jquery-validation/raw/master/jquery.validate.min.js
如果您来自 google 并且以上链接不再有效,则升级到大于 1.7 的 validate 版本可能会起作用。或者,转到此处 https://github.com/jaubourg/jquery-validation并从存储库中获取最新版本。
2011-08-31 更新:看起来他们不再使用那个 GitHub 链接了。 I think this is what you need.
关于javascript - jQuery post 导致 Uncaught SyntaxError : Unexpected token :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5115612/
我目前正在用Ruby编写一个项目,它使用ActiveRecordgem进行数据库交互,我正在尝试使用ActiveRecord::Base.logger记录所有数据库事件具有以下代码的属性ActiveRecord::Base.logger=Logger.new(File.open('logs/database.log','a'))这适用于迁移等(出于某种原因似乎需要启用日志记录,因为它在禁用时会出现NilClass错误)但是当我尝试运行包含调用ActiveRecord对象的线程守护程序的项目时脚本失败并出现以下错误/System/Library/Frameworks/Ruby.frame
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
我正在尝试获得良好的Ruby编码风格。为防止意外调用具有相同名称的局部变量,我总是在适当的地方使用self.。但是现在我偶然发现了这个:classMyClass上面的代码导致错误privatemethodsanitize_namecalled但是当删除self.并仅使用sanitize_name时,它会起作用。这是为什么? 最佳答案 发生这种情况是因为无法使用显式接收器调用私有(private)方法,并且说self.sanitize_name是显式指定应该接收sanitize_name的对象(self),而不是依赖于隐式接收器(也是
下面的代码工作正常:person={:a=>:A,:b=>:B,:c=>:C}berson={:a=>:A1,:b=>:B1,:c=>:C1}kerson=person.merge(berson)do|key,oldv,newv|ifkey==:aoldvelsifkey==:bnewvelsekeyendendputskerson.inspect但是如果我在“ifblock”中添加return,我会得到一个错误:person={:a=>:A,:b=>:B,:c=>:C}berson={:a=>:A1,:b=>:B1,:c=>:C1}kerson=person.merge(berson
我有一个ruby脚本可以打开与Apple推送服务器的连接并发送所有待处理的通知。我看不出任何原因,但当Apple断开我的脚本时,我遇到了管道损坏错误。我已经编写了我的脚本来适应这种情况,但我宁愿只是找出它发生的原因,这样我就可以在第一时间避免它。它不会始终根据特定通知断开连接。它不会以特定的字节传输大小断开连接。一切似乎都是零星的。您可以在单个连接上发送的数据传输或有效负载计数是否有某些限制?看到人们的解决方案始终保持一个连接打开,我认为这不是问题所在。我看到连接在3次通知后断开,我看到它在14次通知后断开。我从未见过它能超过14点。有没有人遇到过这种类型的问题?如何处理?
我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan
我看到有关未找到文件min.map的错误消息:GETjQuery'sjquery-1.10.2.min.mapistriggeringa404(NotFound)截图这是从哪里来的? 最佳答案 如果ChromeDevTools报告.map文件的404(可能是jquery-1.10.2.min.map、jquery.min.map或jquery-2.0.3.min.map,但任何事情都可能发生)首先要知道的是,这仅在使用DevTools时才会请求。您的用户不会遇到此404。现在您可以修复此问题或禁用sourcemap功能。修复:获取文
代码:threads=[]Thread.abort_on_exception=truebegin#throwexceptionsinthreadssowecanseethemthreadseputs"EXCEPTION:#{e.inspect}"puts"MESSAGE:#{e.message}"end崩溃:.rvm/gems/ruby-2.1.3@req/gems/activesupport-4.1.5/lib/active_support/dependencies.rb:478:inload_missing_constant':自动加载常量MyClass时检测到循环依赖稍加研究后,
我有一个用Rails3编写的站点。我的帖子模型有一个名为“内容”的文本列。在帖子面板中,html表单使用tinymce将“content”列设置为textarea字段。在首页,因为使用了tinymce,post.html.erb的代码需要用这样的原始方法来实现。.好的,现在如果我关闭浏览器javascript,这个文本区域可以在没有tinymce的情况下输入,也许用户会输入任何xss,比如alert('xss');.我的前台会显示那个警告框。我尝试sanitize(@post.content)在posts_controller中,但sanitize方法将相互过滤tinymce样式。例如
这些解析和执行良好:"=".scan(/=/)"=".scan(/=/)这会导致“未终止的正则表达式遇到文件结尾”:"=".scan/=/如果我在=之前插入一些内容,错误就会消失:"=".scan/^=/这是怎么回事? 最佳答案 我猜你正在点击thisintheparser:case'/':if(IS_BEG()){lex_strterm=NEW_STRTERM(str_regexp,'/',0);returntREGEXP_BEG;}if((c=nextc())=='='){set_yylval_id('/');lex_state