Tag: rest

使用jQuery的ajax()函数和SSL客户端证书

我想使用jQuery的ajax()函数对REST服务进行XHR调用。 基本上,这可以正常工作,但REST服务只能通过https访问,并要求客户端使用客户端证书进行身份validation。 如何使用jQuery的ajax()函数发送客户端证书?

如何发布访问REST API的jQuery代码,但要防止未经授权的使用

这个问题类似于这个问题: 开发API – 如何使其安全? 我想要的是在我的服务器上针对REST api开发基于jQuery的查询,以检索一些数据以便在网页上显示。 我希望网页的授权用户和jQuery能够访问这些数据,但不希望其他人能够复制该jQuery并将其放在他们的网站上以任何方式访问这些数据。 需要明确的是,这一切都发生在浏览器的客户端 – 没有涉及任何服务器端代码…… 如果可能的话,实现这一目标的正确策略是什么? 我不希望查看网页的最终用户必须知道他们浏览器中发生的任何事情…… 谢谢!

如何在节点js中使用jquery自动完成

我试图用节点rest服务实现jquery自动完成,但我可以让它工作。 这是我的源代码: 自动完成: $(‘#search’).autocomplete({ source: function (req, res) { $.ajax({ url: “http://www.example.com:3000/autocomplete”, dataType: “jsonp”, type: “GET”, data: { term: req.term }, success: function (data) { res($.map(data.results, function (item) { return { label: item.id, value: item.id }; })); }, error: function (xhr) { alert(xhr.status + ‘ : ‘ + xhr.statusText); } }); } }); 节点服务 exports.find […]

将JSON发送到WCF Rest Service – 对象始终为null

我试图通过使用REST,WCF和JSON(所有这些技术的新function)来使我的应用程序正常工作。 我让’GET’工作得很好。 正是“POST”导致了我的问题。 正如您将在下面看到的,我使用JSON.stringify打包’我的JSON,然后将POST发送到REST资源。 但是,当对象到达处理请求的WCF方法时,该对象始终为null。 这是代码: $.ajax({ type: “POST”, dataType: “json”, url: “Services/ContactCompanyService.svc/contactcompanies/customers”, contentType: “application/json; charset=utf-8”, data: JSON.stringify({ contactcompany: newCustomer }), success: function (html) { alert(html); } }); 这是配置的东西: 这是合同: [OperationContract] [WebInvoke(Method = “POST”, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = “customers”)] [return: MessageParameter(Name = “ContactCompany”)] ContactCompany AddContactCompany(ContactCompany ContactCompanyObject); 它是实现上述接口的方法,其中ContactCompanyObject为null。 我究竟做错了什么? […]

跨域jQuery Ajax请求和WCF REST服务

我正在调用(Ajax请求)一个WCF REST服务,该请求是一个跨域请求。 如果我在同一个域中部署我的服务,一切都像奶油一样。 最终在生产中,该服务将位于不同的域中。 我正在使用jQuery 1.5.2。 我的服务给我一个错误说: errorThrown: “jQuery15208493315000087023_1334089616458 was not called” textStatus: “parsererror” 虽然在Firefox中我可以看到JSON值,但执行属于Ajax请求的error handling程序。 我的Ajax请求是: function CallService() { $.ajax({ type: “GET”, url: “http://SomeService/EmpService.svc/GetValues?dv=1455”, contentType: “application/json; charset=utf-8”, dataType: “jsonp”, processdata: false, success: function (data) { ServiceSucceeded(data); }, error: function (jqXHR, textStatus, errorThrown) { debugger; alert(“Service Error”); ServiceFailed(jqXHR, textStatus, errorThrown); } }); } 在WCF服务端,我已将CrossDomainScriptAccess配置为true: 我从服务器获得的JSON响应是: […]

jQuery XML REST Access-Control-Allow-Origin

我正在调用Version One REST API并继续使用XMLHttpRequest cannot load https://www10.v1host.com/… Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin. javascript错误。 我发送GET请求,预计XML内容将作为响应返回。 这是我的jQuery代码: $.ajax({ dataType: “xml”, url: “https://www10.v1host.com/…”, success: function(data, status, xhr) { alert(“Load was performed.”); } }); 我已经更改了dataType: “jsonp ”,并且我得到了这种格式的响应: jsonp1294354293197(<Asset …) 但是得到另一个javascript错误:“ Uncaught SyntaxError: Unexpected token < ” 有没有办法如何获取跨域XMLrest数据(类似于XMLp)或为jsonp做一个解决方法(防止解析JSON格式并使用我自己的解析XML)?

如何通过ajax将JSON数据传递给restful web服务以及如何获取JSON数据?

嗨,我是JSON的新手。我的问题是如何通过ajax将JSON数据传递给宁静的Web服务? 请帮我。 我尝试了下面的代码,但我不确定 我的索引页面 $(document).ready(function(){ var uname = document.getElementById(“uname”).value(); var password = document.getElementById(“pwd”).value(); $(‘#ok’).click(function(){ $.ajax({ url:’http://localhost:8090/LoginAuthRWS/rest/orders’, type:’post’, dataType: ‘Jsondemo’, success: function(data) { $(‘#name’).val(data.name); $(‘#email’).val(data.email); var JSONObject= { “uname”:uname, “password”:password }; } }); }); });

jQuery的ajaxSetup – 我想仅为GET请求添加默认数据

在ajax驱动的站点中,我使用ajaxSetup添加了一些默认数据,ala: var revision = ‘159’; $.ajaxSetup({ dataType: “text json”, contentType: “application/x-www-form-urlencoded; charset=UTF-8”, data: { r: revision } }); 这是为了确保在部署新修订时前端缓存未命中,并且前端从后端请求html模板或json数据。 由于这个原因,后端和前端共享相同的修订号。 问题是后端在前端执行PUT,POST或DELETE时获取参数’r’有点不高兴。 有没有办法告诉jQuery的ajax这个数据只应该在执行GET请求时使用,而不是在执行POST,PUT或DELETE请求时使用。 更新: 我首先尝试了beforeSend函数,因为我知道它。 但是,更改settings.data是可能的,但是当beforeSend返回时,任何更改似乎都会消失。 这可能是我的错…… 🙂 我已经确定了ajaxPreFilter。 虽然这并不容易。 options.data不是一个对象,而是$ .param(object)的结果,所以第一个挑战是取消参数化它。 我最终得到了这个: var revision = ‘159’; $.ajaxPrefilter(function (options, originalOptions, jqXHR) { // do not send data for POST/PUT/DELETE if (originalOptions.type !== ‘GET’ || options.type !== […]

通过AJAX Post将文件输入发布为FileReader二进制数据

我试图通过rest API发布上传到HTML文件输入到网页的附件。 API文档指出post是直接二进制内容作为HTTP请求的主体,而不是表单文件上载。 我的代码如下: $(‘#_testButton’).bind(‘click’, function () { var file = document.getElementById(‘_testFile’).files[0] var reader = new FileReader(); reader.onload = function () { $.ajax({ url: ‘/attachmentURL’, type: ‘POST’, data: reader.result }) } reader.readAsBinaryString(file) }) 我需要这个来处理许多不同的mimeTypes,所以我没有在上面的代码中声明它。 但是,我尝试为.doc文件声明contentType:’application / msword’,并尝试使用processData:false和contentType:false。 数据将被发布到应该的位置。 但是,当我打开文件时,我收到一条消息,上面写着mimeType:带有空文件的application / x-empty或带有一堆二进制字符的文件。 我已经尝试过.doc文件和pdf文件,两者的结果是一样的。 有没有人知道我可以改变什么使这项工作?

将数据发送到ServiceStack RESTful服务,获取“访问被拒绝”

我使用ServiceStack构建了一个RESTful服务,它将数据发送到数据库。 我在本地进行了测试,效果很好。 当我将它部署到服务器并运行相同的代码(这是一个jQuery $ .ajax调用)时,我得到一个“访问被拒绝”错误。 我已经使用插件在我的ServiceStack配置中设置了CORS,如此处所述 。 我还在我的ajax调用中将crossDomain设置为true。 我想不出还有什么可以让它发挥作用,而且老实说我不确定这个错误被扔到哪里。 我已经逐步完成了Javascript,它甚至没有进入ajax调用的’failure’块,错误在此之前抛出……我正在使用IE9进行测试,如果那是相关的……? 知道可能会发生什么吗? 这是我的ServiceStack POST方法: public CitationResponse Post(Citation citation) { var response = new CitationResponse { Accepted = false }; if (string.IsNullOrEmpty(citation.ReportNumber)) { response.Accepted = false; response.Message = “No data sent to service. Please enter data in first.”; return response; } try { response.ActivityId = Repository.CreateCitation(citation.ReportNumber, citation.ReportNumber_Prefix, […]