请查看下面的代码并帮助我弄清楚我的Web服务代码中出了什么问题.我想建立一个可以使用JSONP使用的asp.net Web服务.我在客户端使用Jquery来访问该站点.即使在设置了适当的属性后,我的Web服务仍然会发出xml,因为aynch调用失败了.
网络服务
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
public WebService () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
[ScriptMethod(ResponseFormat= ResponseFormat.Json, XmlSerializeString=false, UseHttpGet=true)]
public string HelloWorld(int id, string __callback) {
return __callback + "({message: 'Hello World'})";
}
}
Run Code Online (Sandbox Code Playgroud)
Web服务响应:
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">test({message: 'Hello World'})</string>
Run Code Online (Sandbox Code Playgroud)
Web.Config中:
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=3.5.0.0,
Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> …Run Code Online (Sandbox Code Playgroud) jQuery的:如何启用beforeSend的$.ajax({dataType:'jsonp'...?有什么解决方案吗?
http://jsfiddle.net/laukstein/2wcpU/
<div id="content"></div>
<script>
$.ajax({
type:"GET",
url:'http://lab.laukstein.com/ajax-seo/.json',
dataType:'jsonp',
async:false,
beforeSend:function(data){ // Are not working with dataType:'jsonp'
$('#content').html('Loading...');
},
success:function(data){
$('#content').html(data.content);
}
});
</script>
Run Code Online (Sandbox Code Playgroud) 如何指定要传递给jsonp回调函数的更多参数?
例如,我正在尝试抓取youtube视频数据:
http://gdata.youtube.com/feeds/api/videos/gzDS-Kfd5XQ?v=2&alt=json-in-script&callback=youtubeFeedCallback
Run Code Online (Sandbox Code Playgroud)
将调用的javascript回调函数是youtubeFeedCallback,并且在调用时它只包含一个参数.
截至目前,功能将是这样的,
function youtubFeedCallback(response) {
...
}
Run Code Online (Sandbox Code Playgroud)
我希望能够做的是传递这样的第二个参数,
function youtubeFeedCallback(response, divId) {
...
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?我试过在网上到处寻找,找不到任何东西.谢谢!
这是我第一次涉足Backbone,我只想尝试从Dribbble获取一个Api调用.
我正试图以最主干的方式做到这一点.然而,它似乎在制作集合时做了一些有趣的事情.
我对此实际渲染并不感到困扰,我只是希望使用Api的每个响应的模型正确设置集合.
任何提示和方向都会很棒.我完全做错了吗?
我试图使用Web服务使用Jquery UI自动完成设置机场代码:
WS是:http: //airportcode.riobard.com - http://airportcode.riobard.com/search?q=dallas&fmt=JSON
我无法创建自动完成,这是我的javascript代码:
<script>
$(function() {
function log( message ) {
$( "<div/>" ).text( message ).prependTo( "#log" );
$( "#log" ).scrollTop( 0 );
}
$( "#city" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "http://airportcode.riobard.com",
dataType: "jsonp",
data: {
fmt: "JSONP",
q: request.term
},
success: function( data ) {
response( $.map( data.geonames, function( item ) {
return {
label: item.code + (item.name ? ", " + item.location : "") + ", " + …Run Code Online (Sandbox Code Playgroud) 我目前正在编写一个Web小部件,我想用我服务器上的wicket组件生成的一些HTML数据来填充这个小部件的内容.
为此,服务器将通过JSONP输出HTML数据.到现在为止还挺好.
但是,我需要获取此HTML数据.如何从服务器获取某些wicket组件的HTML输出?
所以我们假设我有一个JSON文件:
{ "store": {
"book": [
{ "category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{ "category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{ "category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{ "category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是抓住"书"的成员及其所有字符串值对,其中标题是"荣誉之剑".我怎么能用JQuery做到这一点?问题是我不知道该成员的索引ID,如果我这样做将是微不足道的,即store.book [1] .XXX会给我所有兄弟键值对的值我正在寻找对于.
有关如何使用最少代码执行此操作的任何想法?
我正在开发一个项目,在这个项目中我需要进行多个JSON调用.一旦我退出该循环,我需要处理我所做的所有调用的结果.我很难理解如何按照我的操作顺序来完成这些调用.在完成对服务的调用之前,始终执行处理结果的代码.我创建了一个jsfiddle来演示并在此处包含代码.
var sourceData = { "fooIndex": "foo",
"barIndex": "bar"
}
var destinationData = {};
for (var sourceIndex in sourceData) {
$.getJSON('http://echo.jsontest.com/' + sourceIndex + '/' + sourceData[sourceIndex] + '?callback=?', null, function (result) {
for (var resultIndex in result) {
alert("Adding " + resultIndex + " : " + result[resultIndex]);
destinationData[resultIndex] = result[resultIndex];
}
});
}
if (Object.keys(destinationData).length == 0) {
alert("Destination not yet populated");
}
else {
alert("Eureka! You did it!");
}
Run Code Online (Sandbox Code Playgroud) 由于集群环境中的跨域问题,我试图使用jsonp数据类型执行ajax请求。
我可以向没有@RequestBody参数映射的方法发出jsonp请求,但是当我尝试使用@RequestBody参数实现RequestMapping时,出现415不支持的媒体类型错误。
通常,当我遇到此问题时,这是由于某些属性未正确在发布的json对象与其在Spring中映射到的Java对象之间正确映射所致。但是我能找到的唯一差异是,使用jsonp会添加一个名为callback的参数和一个带有下划线“ _”的参数。
所以我在我的Java对象中添加了标签@JsonIgnoreProperties(ignoreUnknown = true),并认为应该可以解决该问题,但是仍然会引发此错误。
我还有什么需要做的吗?
编辑:我现在在Spring的调试日志输出中看到此堆栈跟踪:org.springframework.web.HttpMediaTypeNotSupportedException:内容类型'application / octet-stream'不支持
$.ajax({
url : 'http://blah/blah.html',
data : { abc : '123' }, (I also tried to JSON.stringify the object but no difference)
dataType : 'jsonp',
success : function(response) {
alert('ok '+JSON.stringify(response));
},
fail : function(response) {
alert('error'+JSON.stringify(response));
}
});
Run Code Online (Sandbox Code Playgroud)
Spring控制器是:
@RequestMapping({ "blah/blah" })
@ResponseBody
public ReturnObject getBlahBlah (@RequestBody MyObject obj) throws Exception {
}
Run Code Online (Sandbox Code Playgroud)
参数对象是:
@JsonIgnoreProperties(ignoreUnknown = true)
public class MyObject {
private String abc;
// getter and setter for …Run Code Online (Sandbox Code Playgroud) 我正在通过添加自定义模块来扩展aurelia的入门应用程序.我在阅读json时遇到错误"Uncaught SyntaxError:Unexpected token:".但是json验证器没有发现任何错误.
这是我的json
{
"news": [
{
"title": "Lorem Ipsum is simply dummy text",
"type": "news",
"tags": [
"news",
"fish",
"loremipsumdolor"
],
"text": "Lorem Ipsum is simply dummy text of the printing and typesetting industry."
},
{
"title": "Lorem Ipsum",
"type": "news",
"tags": [
"news",
"fish"
],
"text": "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s."
}
]
}
这是我的模块试图加载json(基本上它是来自flickr.js的复制粘贴,可以在示例代码中找到)`import …
jsonp ×10
jquery ×5
json ×5
javascript ×4
ajax ×2
asp.net ×1
aurelia ×1
backbone.js ×1
getjson ×1
java ×1
jquery-ui ×1
spring-3 ×1
spring-mvc ×1
web-services ×1
wicket ×1
youtube ×1