У меня есть приложение iframe FB.У нас есть три места, где мы его разрабатываем: мой локальный сервер, сервер этапа, на котором мы тестируем приложение, рабочий сервер.Localhost и производство имеют HTTPS.Локальный и сценический приложения имеют режим песочницы.Все версии приложения идентичны, код один и тот же.Этап и производство - это полностью одна и та же серверная машина с теми же настройками, кроме HTTPS.
Теперь, что происходит только в моем серверном приложении на сцене : Когда я нажимаю на что-то, где диалоговое окно jQuery UIдолжен быть вызван, в моем Firebug возникает следующая ошибка: Permission denied to access property 'Arbiter'
.Диалог не вызывается тогда.Он вызывается каким-то динамически загруженным canvas_proxy.php, в этом коде:
/**
* Parses the fragment and calls Arbiter.inform(method, params)
*
* @author ptarjan
*/
function doFragmentSend() {
var
location = window.location.toString(),
fragment = location.substr(location.indexOf('#') + 1),
params = {},
parts = fragment.split('&'),
i,
pair;
lowerPageDomain();
for (i=0; i<parts.length; i++) {
pair = parts[i].split('=', 2);
params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
}
var p = params.relation ? resolveRelation(params.relation) : parent.parent;
// The user is not inside a frame (probably testing on their own domain)
if (p == parent || !p.Arbiter || !p.JSON) {
return;
}
p.Arbiter.inform(
'Connect.Unsafe.'+params.method,
p.JSON.parse(params.params),
getBehavior(p, params.behavior));
}
Строка if (p == parent || !p.Arbiter || !p.JSON) {
поднимает его.Мой код сценария, связывающий JS API, выглядит следующим образом:
<script src="https://connect.facebook.net/en_US/all.js#appId=APPID"></script>
Кто-нибудь знает, почему это может происходить?Я нашел это и это , но эти проблемы мне не кажутся полезными (или я просто не понимаю).Может ли это быть из-за HTTPS?Почему это сработало позавчера?Я в отчаянии: - (