JQuery метод не допускается - PullRequest
1 голос
/ 16 сентября 2010

Как разрешить запуск этой страницы на сервере IIS ... Он не работает на localhost ..... он работает, когда я открываю его напрямую ... Он выдает ошибку "это не разрешено ...!

Рабочий пример ..! Я хочу это ..""

Ошибка: alt text

<html>
<head>

<script src="jquery.js" type="text/javascript" language="javascript"></script>
<script src="jquery.xml2json.js" type="text/javascript" language="javascript"></script>


<script>
function sayHello(msg)
{

   alert(msg);
}

function dcSetRate(obj,value){

document.getElementById(obj).value = value.toFixed(4);

}

function dcSet(obj,value){

document.getElementById(obj).value = value;

}

(function(usedUrl) {
   //All currencies quoted against the euro 
    var fetchService = function() {

    /*USD/RUB
EUR/RUB

USD/EUR
USD/TL*/
                $.get('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml', function(xml) {
                      var jsonObj = $.xml2json(xml);

                        //alert(jsonObj.Cube.Cube.Cube[0]["currency"] + 2);
                        var usd=jsonObj.Cube.Cube.Cube[0]["rate"];
                        var rub=jsonObj.Cube.Cube.Cube[16]["rate"];
                        var eur= 1 //jsonObj.Cube.Cube.Cube[1]["rate"];
                        var ytl=jsonObj.Cube.Cube.Cube[17]["rate"];

                        var usd_rub= rub/usd;
                        var eur_rub =rub/eur;
                        var usd_eur = eur/usd;
                        var usd_ytl= ytl/usd;
                        dcSetRate("USD_RUB",usd_rub);
                        dcSetRate("EUR_RUB",eur_rub);
                        dcSetRate("USD_EUR",usd_eur);
                        dcSetRate("USD_YTL",usd_ytl);
                }); 
getMicex();
                // assuming your elements are <img>
                document.getElementById("text1").value = getDt();
                // if not you could also set the background (or backgroundImage) css property
                // document.getElementById(elements.shift()).style.background = "url(" + images.shift() + ")";
                ///sayHello(usedUrl);

            setTimeout(fetchService, 10500);

        }

    window.onload = fetchService;
}(['URL URL']))

function getMicex(){

$.get('http://www.micex.com/issrpc/marketdata/stock/index/daily/short/result.xml', function(xml) {
                      var jsonObj = $.xml2json(xml);
                      var indexValue = jsonObj.row["CURRENTVALUE"];
                     dcSet("Micex",indexValue);
                      });
}

function getDt(){
var currentTime = new Date()
var hours = currentTime.getHours()
var minutes = currentTime.getMinutes()
var seconds = currentTime.getSeconds()
if (minutes < 10){
minutes = "0" + minutes
}
var ama;
if(hours > 11){
ama ="PM";
} else {
ama ="AM";
}
 return hours + ":" + minutes + " : " + seconds + " " + ama;
}
</script>
</head>
<body>
 <input type="text" name="fname" id="text1"/><br/>
   USD_RUB<input type="text" name="fname" id="USD_RUB"/><br/>
   EUR_RUB <input type="text" name="fname" id="EUR_RUB"/><br/>
    USD_EUR <input type="text" name="fname" id="USD_EUR"/><br/>
    USD_YTL  <input type="text" name="fname" id="USD_YTL"/><br/>
        Micex<input type="text" name="fname" id="Micex"/><br/>
</body>
</html onLoad="sayHello()">

Ответы [ 3 ]

1 голос
/ 16 сентября 2010

Эта ошибка возникает из-за того, что IE блокирует запрос к другим сайтам (в вашем случае www.micex.com). Вы можете взглянуть на документацию по jQuery API, я нахожу это очень полезным: http://api.jquery.com/jQuery.get/

Более того, обратите внимание на приведенные здесь примеры:

Дополнительные примечания:

  • Из-за ограничений безопасности браузера большинство запросов "Ajax" при условии соблюдения той же политики происхождения; запрос не может успешно получить данные из другого домена, субдомен или протокол.
  • Если запрос с помощью jQuery.get () возвращает код ошибки, он не будет выполнен молча, если сценарий также вызвал глобальный метод .ajaxError ().
  • На запросы скриптов и JSONP не распространяется одна и та же политика происхождения ограничения.

Вы можете проверить это, добавив try - catch блок вокруг $ .get (...); в этом случае позвоните и выполните что-то дополнительное в разделе catch или уведомите пользователя.

1 голос
/ 25 сентября 2010

В доступе отказано, потому что вы запросили что-то из другого удаленного домена.Это не разрешено, в вашем случае вы должны указать тип данных для jsonp.У меня была похожая проблема.Вы хотите обратиться к документам jquery для получения более подробной информации

http://api.jquery.com/jQuery.ajax/

http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/

1 голос
/ 16 сентября 2010

Трудно сказать, какая ошибка может быть из кода, который вы дали, и без подробностей, таких как точное сообщение об ошибке.

Однако, глядя на ваш код, наиболее вероятная причина в том,Вы пытаетесь выполнить межсайтовый запрос AJAX.Из соображений безопасности запросы AJAX разрешены только к тому же серверу, который обслуживал веб-страницу.Т.е. скрипт, работающий на веб-странице с example.com, может отправлять запросы AJAX только на другие страницы на example.com.Например, запросы к example1.com или example.net будут запрещены.

Подробнее об этом можно прочитать здесь: http://en.wikipedia.org/wiki/Same_origin_policy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...