我目前正在开发一个PhoneGap应用程序,它通过WCF Web服务与我们的数据库通信.
我已经向服务器提出了很多请求并且没有问题地检索数据但是在每种情况下我只是将一些参数作为我手动创建的JSON字符串传递(没有字符串化).现在我在尝试从本地SQLite数据库读取时遇到了问题,然后将信息作为JSON发送到Web服务.该服务返回400错误,具有以下内容:
反序列化操作'uploadData'的请求消息体时出错.OperationFormatter遇到无效的Message正文.期望找到名称为"type"且值为"object"的属性.找到值'数组'.
我按如下方式编码JSON:
database.transaction(function(tx) {
var query = "SELECT * FROM someTable WHERE something=something";
tx.executeSql(query, [], function(tx, results) {
var resultSet = new Array();
for (i=0; i<results.rows.length; i++) {
var row = results.rows.item(i);
resultSet[i] = row;
}
var json = JSON.stringify(resultSet);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我使用jQuery通过ajax请求发送JSON字符串:
$.ajax({
type: "POST",
url: "http://someurl/myService.svc/uploadData",
contentType: "application/json; charset=utf-8",
data: json,
dataType: "json",
success: function (data) {/*do something*/},
error: function(jqXHR, textStatus, errorThrown) {
$('#test').html(textStatus + " - " + errorThrown + " - " + …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用正则表达式验证 ruby 类中文本字段中的一串逗号分隔的单词。以下内容应该有效:
word
word, word, word
word,word,word
Run Code Online (Sandbox Code Playgroud)
并且以下内容应该是无效的:
word word word
Run Code Online (Sandbox Code Playgroud)
我以为这会起作用
/([a-z]+){1}(,\s*[a-z]+)*/i
Run Code Online (Sandbox Code Playgroud)
在 Rubular 上,它似乎是有效的,但是当我在类中进行如下验证时,它接受应该是无效的字符串。
@tag_regex = /([a-z]+){1}(,\s*[a-z]+)*/i
validates :tags,
:allow_blank => true,
:format => { :with => @tag_regex, :message => "Invalid tag format." }
Run Code Online (Sandbox Code Playgroud)
我不确定我的问题是否在于正则表达式或验证方法本身。任何帮助表示赞赏。