我怎样才能在JSONP响应中管理'?
我需要在我的JSONP请求中管理像'的炭,jQuery trunding ajax.所以(从c#)这就是我所做的: myText = "Hello I'm a string"; myText.Replace("'", "\'"); Response.Write(Request["callback"] + "({ htmlModulo: '" + myText + "'});"); 但在客户端破裂: parsererror - SyntaxError: missing } after property list 那么,如果替换不起作用,我该如何管理'? 解决方案 序列化JSON已通过.NET为您解决.使用 P> var serializer = new JavaScriptSerializer(); 要构造JSONP,您只需要连接前缀(在"回调"查询参数中进行了硬编码或传递)和后缀(通常只是),但是有时您可能需要通过额外的参数传递额外的参数,具体取决于呼叫
8 2024-04-21
编程技术问答社区
ServiceStack-使用gzip/deflate压缩JSONP请求
我有一个ServiceStack服务,可以使用RequestContext.ToOptimizedResult()来压缩响应,例如: [Route("/numbers/search")] public class FindNumbers { } public object Get(FindNumbers query) { var data = new List { "One", "Two", "Three" }; return RequestContext.ToOptimizedResult(data); } 发出类似的请求时,这可以很好地工作. GET http://myhost:13487/numbers/search.json ,并按照Accept-Encoding请求标头按预期进行压缩: Accept-Encoding: gzip,deflate,sdch 我也可以发出JSONP请求: GET http://m
14 2024-04-19
编程技术问答社区
以适当的格式返回JSONP WCF
我正在尝试输出正确包装的JSONP值,以使jQuery消耗. 我正在寻找的输出是: jsoncallback({"Status": "OK"}) 但是它正在输出的ATM: "jsoncallback({"Status": "OK"})" 显然,这不是正确的JSONP格式,因为jQuery请求无法处理响应. 我在c#中的操作合同是: [OperationContract] [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "returndata?s={s}")] Stream EchoWithGet(string s); public string EchoWithGet(string s) { string json = @"jsoncallback({'Status':'OK'})";
8 2024-04-12
编程技术问答社区
如何反序列化JSONP响应(最好是用JsonTextReader而不是字符串)?
我正在尝试使用声称返回JSON的Web服务,但实际上总是返回JSONP.我看不到改变该服务行为的方法. 我想使用newtonsoft json.net来解析结果.我已经宣布了一堂课,我们称其为mytype,我想将内部的json结果列为 . JSONP: parseResponse({ "total" : "13,769", "lower" : "1", "upper" : "20"}) 您可以看到这不是正确的JSON,因为它具有parseResponse(前缀和)后缀.虽然此示例非常简单,但实际响应可能很长,按100ks的顺序. . mytype: public class MyType { public Decimal total; public int lower; public int upper; } 将我的Web服务响应输入流和Jsontextreader之后,我尝试这样的选择: (MyType)seriali
12 2024-04-11
编程技术问答社区
如何为现有的WCF服务启用JSONP?
我有一个现有服务,如以下方法: [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] [ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)] public class SomeService : ISomething { public SomeListResults SomeList(SomeParams someParams) { .... } } 是否有一种简单的方法可以同时允许JSONP调用和JSON(检测).这是本地的吗? 解决方案 更新您的配置看起来像:
10 2024-04-11
编程技术问答社区
WCF错误:405方法不允许
对这个问题发疯.我有一个带有2个项目的解决方案,其中一个是一个普通的旧HTML,带有jQuery ajax调用,而另一个是WCF服务. HTML页面将向WCF服务发出AJAX调用以获取JSON字符串并将其用于显示目的. 现在,问题是每当我以调试模式运行时,HTML页面和WCF都将从不同的端口开始.当我执行测试时,这为我创建了一个交叉问题(即,在Firefox中获得405方法不允许使用呼叫类型=选项的错误).我会在我的Ajax脚本上检查呼叫方法,WCF服务是相同的(GET). 我会搜索Google,但发现我必须在IIS上安装扩展名或执行一些配置,因为我在做的事情很简单,所以我发现这很麻烦.以下一个示例,我会在我的web.config中添加以下配置,但它不起作用:
18 2024-04-11
编程技术问答社区
使用JSONP来创建Blogger网站。在'DOMWindow'上执行'postMessage'失败了。
我得到了: 未能在" domwindow"上执行" postmessage':提供的目标原点(' https://www.blogger.com '). 使用我购买的模板运行博客网站时.该模板广泛使用JSONP并调用JQuery V1.11.0. 这是一个请求的示例: if ( static_page_text === "[sitemap]" ) { var postbody = $('.static_page .post-body'); $.ajax({ url: "/feeds/posts/default?alt=json-in-script", type: 'get', dataType: "jsonp", success: function (dataZ) { var blogLabels = []; for (var t = 0; t
10 2024-04-01
编程技术问答社区
用jQuery.ajax请求和jsonp进行基本认证
我有一些本地HTML/JS文件,我想通过HTTPS调用一些远程服务器,并最终为请求使用基本身份验证. 我遇到两个问题.首先是,如果我不为数据类型指定" JSONP",则jquery.ajax()请求返回错误: 访问受限制的URI拒绝代码: 1012 我的请求是否被视为跨域,因为我的主要工作文件是在本地存储的,但是从其他地方检索数据? 很好,我更新了电话,现在看起来像: $.ajax({ url: myServerUrl, type: "GET", dataType: "jsonp", // considered a cross domain Ajax request if not specified username: myUsername, password: myPassword, success: function(result) { // success ha
12 2024-03-29
编程技术问答社区
setRequestHeader在使用jQuery的JSONP中不起作用
我正在使用jQuery Mobile,jQuery 1.7.2和PhoneGap 构建iPhone应用程序 尝试使用此代码从ASP.NET RESTFUL服务获得JSONP,我需要先进行身份验证并获得令牌,然后再次发送回去. . 这是我的功能: var setToken = function () { var serverToken = ''; $.support.cors = true; jQuery('body').ajaxSend(function (evt, xhr) { xhr.setRequestHeader("Authorization", "Basic " + $.base64.encode(username + ":" + password)); xhr.setRequestHeader('X-Accept', 'application/json'); }); $.getJSON(
4 2024-03-29
编程技术问答社区
如何用JQuery进行基本认证的JSONP调用?
使用jQuery,我如何称呼需要基本身份验证的JSONP API? 我可以从编程上处理此操作,或者用户必须进行交互并输入用户名和密码? 解决方案 JSONP请求不使用XMLHTTPREQUEST对象/系统.因此,没有办法直接执行此操作. 我几次尝试了Finnnk答案中提到的方法,但在阅读此讨论在jQuery邮件列表上. 更新 当我说"直接这样做"时,我的意思是: 您无法编程设置HTTP Auth凭据(但是,我已经测试的大多数浏览器都会提示用户获得凭据) 如果您不希望用户手动输入凭据,则需要使用服务器来代理您的请求.请参阅此博客文章提供了一个很好的描述和示例. 其他解决方案 这有点令人困惑,因为其他解决方案 源代码链接在@HRJ引用的帖子中打破,尝试以下: https://github.com/bitly/bitly/oauth2_proxy 或 编辑:我确实设法找到了(现在已经过时的)源代码: https://code.googl
10 2024-03-29
编程技术问答社区
Backbone Collection jsonp ajax结果不能正确生成模型
这是我第一次涉足骨干,我只是想从Dribbble中获取API调用. 我试图做到这是最骨干的本地方式.但是,它似乎在制作收藏时做一些有趣的事情. 我在这一点上并不为实际渲染而感到困扰,我只希望该集合使用API​​的每个响应的模型正确设置. 任何提示和方向都会很棒.我完全做错了吗? 解决方案 不确定您的问题是什么.重写一些您的收集课以分开关注点,我得到了完全有效的模型. Shot = Backbone.Model.extend({ initialize:function(opts) { console.log("init shot : "+opts.id); } }); ShotsList = Backbone.Collection.extend({ model: Shot, sync: function(method, model, options) { var params = _.exten
14 2024-03-26
编程技术问答社区
JSONP和Backbone.js
我想使用REST API我控制的backbone.js.我希望将REST API和骨干脚本生存在另一个域上,但不幸的是,这将被阻止,因为这是一个跨域请求. Backbone.js是否具有支持JSONP请求的内置功能?或者,是否有人有任何手动向backbone.js sync系统添加JSONP支持的经验? 解决方案 您将无法与JSONP一起使用整个REST API.您只能使用JSONP调用获取请求(它可以通过在当前文档上编写新的标签来工作,然后调用JavaScript回调...). 要使用所有http动词(post,delete,put),您可以使用CORS协议: http://www.w3.org/tr/access-control/. CORS是在浏览器和网络服务之间协商的协议,该协议告诉浏览器从跨域调用 执行JavaScript代码是"可以的" 要使用此功能,您只需要在服务器响应中包含一些自定义标题,这些定制标头告诉浏览器可以接受跨域
20 2024-03-26
编程技术问答社区
用jQuery查询Azure Blob存储的JSON数据
我在Azure Blob存储中有一些数据.数据是JSON,已使用"应用程序/JSON"内容类型保存. 我的应用程序将托管在" myapp.com"上,该域中包含" myapp.cloudapp.net"的cname.我想我应该创建一个自定义域名,例如" storage.myapp.com",将其指向我的Azure存储. 但是?我可以使用JSONP或其他方式将JSON AJAX调用到Azure存储吗? 如何做到这一点? 非常感谢. 解决方案 好吧,显然Azure Blob存储不立即支持JSONP,但可以完成. 例如,如果我将此json存储在azure blob中: {"Name":"Valeriano","Surname":"Tortola"} 我尝试: $.getJSON("https://myaccount.blob.core.windows.net/json
8 2024-03-24
编程技术问答社区
JSONP Freebase用于自动完成的jquery插件
这来自 parse json freebase导致PHP 但是由于可以使用 jsonp 在JavaScript中进行此操作,所以我会知道如何. 所以,我正在使用此jQuery自动完整插件:这是在输入上使用插件的代码: $(function() { var t = new $.TextboxList('#form_topick_tags', {unique: true, plugins: {autocomplete: { minLength: 2, queryRemote: true, remote: {url: 'autocomplete2.php'} }}}); 我想解析Freebase的结果,例如并按以下顺序传递到插件: guid,"name",null,"namen:type name" 所以,第一个结果是: 0,"The Bea
10 2024-03-20
编程技术问答社区
来自Google/Bing的带有自动完成功能的自定义框。有什么办法可以读取收到的json文件吗?
我尝试使用搜索框构建一个网页.我想从bing中获取自动完成选项(例如). 可以通过: 从bing中获得自动完成 http://api.bing.com/osjson.aspx?query= your_query 我用自动完成的小部件编写了一些代码,要求将JSON作为JSONP,然后成功地看到JSON到达(在Fiddler中).但是,由于它仅作为JSON到达,而不是以所需的格式到达,所以我得到了Parseerror. (我在错误函数中看到了它.未调用成功函数) 我的代码的相关部分是: $( "#mySesearchBox" ).autocomplete({ source: function( request, response ) { $.ajax({ url: "http://api.bing.com/osjson.aspx?query=" + request.term, dataTy
12 2024-03-20
编程技术问答社区
使用JSONP和cookies的跨域登录
我如何允许用户登录一个域并自动登录我的其他域,而无需在每个域上提交表单? 解决方案 我们都知道,饼干是无法访问的跨域,因为这会带来安全风险.但是,使用一些技巧,有一些方法.基本上,我们正在为中心域上的用户设置cookie,使用脚本检查该cookie的存在,然后使用JSON-P回调将cookie复制到其他域上.更详细地: 登录 步骤1 在mydomain.com上显示(或myotherdomain.com等)应发布到central.com/login 步骤2 on central.com/login,验证了用户名和密码,并在central.com域上设置了一个cookie,其中包含该用户的唯一值.然后将用户重定向到mydomain.com SELECT unique_value FROM users WHERE username = $username set cookie on central.com containing uniq
14 2024-03-20
编程技术问答社区
我怎样才能验证/安全/认证一个基于JavaScript的POST请求?
我正在帮助开发的产品基本上会这样起作用: 网络发布者在其网站上创建一个新页面,其中包括我们服务器的. 当访问者到达该新页面时,收集页面的文本内容,并通过邮政请求(交叉域,使用内的 )将其发送到我们的服务器. 我们的服务器处理文本内容并返回响应(通过 jsonp ) HTML片段列表链接到网络周围相关内容.该响应被缓存,并提供给随后的访问者,直到我们收到另一个带有同一URL的文本内容的帖子请求,此时我们会重新生成"新鲜"的响应.这些帖子只有在我们的缓存TTL到期时才会发生,此时服务器表示并提示页面上的再次收集和发布文本内容. 问题在于,该系统似乎本质上是不安全的.从理论上讲,任何人都可以欺骗HTTP POST请求(包括引用器标头,因此我们不能仅检查该请求)将页面的内容发送到我们的服务器.这可能包括任何文本内容,然后我们将使用它们来生成该页面的相关内容链接. 使此安全的主要困难是我们的JavaSc
6 2024-03-19
编程技术问答社区
从Aurelia http客户端检索jsonp时出错
我有一个使用Aurelia创建的应用程序.我希望通过Ajax从Instagram中的用户检索最新图像.我尝试使用 aurelia http client ,因为那是Aurelia flickr flickr示例在Aurelia的入门页面上的示例./p> 如果我使用http.get,那么我会从Instagram中获得CORS错误.尝试http.jsonp,检查的响应显示了 i am 能够使用jQuery成功地通过Ajax检索图像,但我很想知道我对Aurelia HTTP客户端做错了什么. 这是视图模型的相关位: import {inject} from 'aurelia-framework'; import {HttpClient} from 'aurelia-http-client'; @inject(HttpClient) export class Welcome { images = []; url = '[INSTAGRAM_URL]'; constr
14 2024-03-19
编程技术问答社区
如何在Angular 2中做一个简单的JSONP异步请求?
我正在尝试将以下Angular 1代码转换为Angular 2: $http.jsonp('https://accounts.google.com/logout'); 需要一个跳过CORS政策问题的JSONP请求. 解决方案 使用Angular 15的独立组件API,使用bootstrapApplication(AppComponent, { providers: [provideHttpClient(withJsonpSupport())], }); 其他解决方案 在最新版本的Angular 中 import httpclientmodule 和 httpclientjsonpmodule 在您的应用程序模块的定义文件 中 import { HttpClientModule, HttpClientJsonpModule } from '@angular/common/http'; @NgModule({ declara
14 2024-03-18
编程技术问答社区