JavaScript 答案

标签 javascript jquery ajax

(function() {
    main();
    function main() { 
        jQuery(document).ready(function($) { 
            $.ajax({
                type: 'post',
                url: 'http://example.com/search.php',
                data: { value: '123' },
                cache: false,
                success: function(returndata) {
                    $('#widget').html(returndata);
                }
            });
        });
    }
})(); 
<script src="http://example.com/widget.js" type="text/javascript"></script>
<div id="widget"></div>

当我将小部件粘贴到我的网站上时,它运行良好,并且我得到了 div“小部件”中的答案,但是如果我粘贴此:

<script src="http://example.com/widget.js" type="text/javascript"></script>
<div id="widget"></div>

对于另一个页面,它不起作用。有人可以帮忙吗?

最佳答案

截至您发表评论时,您遇到了跨域限制 ( Same-origin policy )。一个可行的解决方案是将“search.php”中的内容作为 jsonp 提供。

<?php

header('content-type: application/json; charset=utf-8');
$searchResults= array("Article 1", "Article 2", "Article 3");
echo $_GET['callback'] . '('.json_encode($searchResults).')';

?>

在 jQuery $.ajax 中,您应该将 dataType 设置为“jsonp”,也许还可以设置参数 crossDomain 也改为 true

(function() {
    main();
    function main() { 
        jQuery(document).ready(function($) { 
            $.ajax({
                type: 'post',
                dataType: 'jsonp',
                crossDomain: true, // Shouldent be neccesary.
                url: 'http://example.com/search.php',
                data: { value: '123' },
                cache: false,
                success: function(returndata) {
                    $('#widget').html(returndata);
                }
            });
        });
    }
})(); 

希望它对你有用。

关于JavaScript 答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29669526/

相关文章:

javascript - angular.js 指令 templateUrl 无法绑定(bind)范围

javascript - React 中以下 props 的来源是什么?

javascript - 在三元运算符中执行函数

jquery - 为什么在 jQuery 中的某些情况下,event.preventDefault() 无需将事件作为回调函数中的参数传递即可工作?

javascript - 我的 Bootstrap 折叠无法在单击按钮时正确切换和关闭

javascript - PHP $_GET 无法与 JQuery Mobile 一起使用

jquery - 通过 Ajax 传递关联数组

php - 行已删除,但PHP并未真正从数据库中删除+没有错误消息

javascript - 如果未在 JavaScript 中单击,如何使圆圈消失?

javascript - 为什么 Stackoverflow 使用 javascript 动态绑定(bind)用户操作?