在javascript中动态创建jsonp对象(将json对象发送到跨域)

在javascript中动态创建jsonp对象(将json对象发送到跨域),json,jquery,cross-domain,jsonp,Json,Jquery,Cross Domain,Jsonp,我正在尝试向servlet发送一个json对象 但它显示的错误如下: XMLHttpRequest无法加载http://192.168.10.113:8080/collective intellegence/SaveFeedback。访问控制不允许源代码http://192.168.9.185允许源代码允许源代码 我的代码 var feedbackData = []; for (j in storeData.collection) { var fromD

我正在尝试向servlet发送一个json对象

但它显示的错误如下: XMLHttpRequest无法加载http://192.168.10.113:8080/collective intellegence/SaveFeedback。访问控制不允许源代码http://192.168.9.185允许源代码允许源代码

我的代码

var feedbackData = [];

        for (j in storeData.collection) {
            var fromData="abc";
            feedbackData.push({
                "queryid": queryId,
                "from": fromData,
                "to": GetUserDetails(storeData.item(j)),
                "isresolved": document.getElementById(("chk" + j)).checked
            });
        }
$.ajax({
                type: 'POST',
                url: saveDataURL,
                data: "{ 'feedback': '" + feedbackData + "' }",
                dataType: 'json',
                success: function (data) {
                    alert('Success');
                },
                error: function () {
                    alert('Error');
                }
            });
这是显示错误

我在谷歌上搜索发现,我们无法将json对象传递到跨域

所以我决定创建一个jsonp对象,我可以将它传递到跨域

请帮忙解决这个问题


提前感谢

您必须将数据类型更改为JSONP

function hello(data){ // my call back function
            console.log(data);
        }

        $(function(){
            //It's not actually working, but htis code should work well
            //Let's say that you put your docStats in an object
            //like docStats = data.response.clickStats.docStats

            $.ajax({
                url:'http://example.com',
                type : 'POST' ,
                dataType: 'jsonp',
                data : {
                    fq: 'param1',
                    wt: 'param2',
                    "json.wrf" : 'hello' // how i call my callback function

                }
            });

        })

您应该了解JSONP的工作原理:

由于JSONP是通过创建标记来工作的,所以您只能使用带有GET HTTP方法的JSONP,而不能使用POST方法。使用JSONP发送的所有数据都在URL查询参数中发送(因为GET请求没有正文)


我认为您应该检查CORS,并检查它是否是解决跨源问题的好方法:

如果我使用jsonp,那么servlet不起作用,因为bcz只使用json格式,如果我在数据类型中使用json,它会显示我提到的错误。我必须发送一个json对象,而不是jsonp对象